我在网上搜索过,发现很多人都在问这个,但没有一个人能解决我的问题.
我有一个Connection类,以及一个在页面中使用该类的方法.
DataConn.cs
public static OleDbConnection ConnectExcel()
{
//Store the connection details as a string
string connstr =
String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=pricelist.xlsx;Extended Properties=Excel 12.0 Xml;HDR=YES");
//Initialise the connection to the server using the connection string.
OleDbConnection oledbConn = new OleDbConnection(connstr);
//Open the connection, we do this here so we can instantly be able to use SQL commands in the code.
oledbConn.Open();
return oledbConn;
}
public static void DisconnectExcel()
{
_oledbConn.Dispose();
_oledbConn.Close();
}
Run Code Online (Sandbox Code Playgroud)
以及调用它的代码
protected void Page_Load(object sender, EventArgs e)
{
// Connection String
const string xlStr = "SELECT * FROM [Sheet2$]";
// Create OleDbCommand object and select data from worksheet Food
OleDbCommand cmd = new OleDbCommand(xlStr, DataConn.ConnectExcel());
// Create new OleDbDataAdapter
OleDbDataAdapter oleda = new OleDbDataAdapter();
oleda.SelectCommand = cmd;
// Create a DataSet which will hold the data extracted from the worksheet.
DataSet ds = new DataSet();
// Fill the DataSet from the data extracted from the worksheet.
oleda.Fill(ds);
// Bind the data to the GridView
gridPricelist.DataSource = ds;
gridPricelist.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
是的我仍然得到:
System.Data.OleDb.OleDbException:找不到可安装的ISAM.
有人可以帮忙吗?
Waq*_*jua 18
如果使用多于1个扩展属性,则必须引用值标记,否则驱动程序无法将它们与连接字符串中的其他非扩展属性区分开来;
...Extended Properties=""Excel 8.0;IMEX=1"""
Run Code Online (Sandbox Code Playgroud)
修改你的连接字符串
String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=pricelist.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES""");
Run Code Online (Sandbox Code Playgroud)
参考: 无法找到可安装的ISAM
| 归档时间: |
|
| 查看次数: |
32044 次 |
| 最近记录: |