打开与 excel 文件的连接时发生未指定错误
Unspecified error when opening connection with excel file
我正在开发 asp.net c# 应用程序,我从用户那里获取 excel 文件并将其上传到服务器后,我在我的页面上打印此文件的内容,上传很好,但是当我打开连接时 connExcel.Open() 发生未指定的错误;在以下代码中:
private void ImportToGrid(string File_Path, string Extenstion)
{
string ConnStr = "";
switch (Extenstion)
{
case ".xls": //Excel 97-03
ConnStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07
ConnStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
ConnStr = String.Format(ConnStr, File_Path, "No");
OleDbConnection connExcel = new OleDbConnection(ConnStr);
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable dtExcelData;
dtExcelData = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
connExcel.Close();
connExcel.Open();
cmdExcel.CommandText = "SELECT * From [Sheet1$]";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
connExcel.Close();
GridView_Excel.Caption = Path.GetFileName(File_Path);
ViewState["GridviewData"] = dt;
GridView_Excel.DataSource = ViewState["GridviewData"] as DataTable;
GridView_Excel.DataBind();
}
代码在开发服务器上运行良好。
请帮帮我:(
我认为这都与办公室有关 AccessDatabaseEngine_X64.exe
对我来说,我必须在托管服务器上安装 office 2010 64 并在 iis 应用程序池上启用 32 位。并安装 AccessDatabaseEngine_X64.exe
然后重新启动服务器或 iis,一切都会正常进行。
我猜它与代码无关,因为我在某些服务器上遇到了这个问题,而另一些则没有。
我正在开发 asp.net c# 应用程序,我从用户那里获取 excel 文件并将其上传到服务器后,我在我的页面上打印此文件的内容,上传很好,但是当我打开连接时 connExcel.Open() 发生未指定的错误;在以下代码中:
private void ImportToGrid(string File_Path, string Extenstion)
{
string ConnStr = "";
switch (Extenstion)
{
case ".xls": //Excel 97-03
ConnStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07
ConnStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
ConnStr = String.Format(ConnStr, File_Path, "No");
OleDbConnection connExcel = new OleDbConnection(ConnStr);
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;
connExcel.Open();
DataTable dtExcelData;
dtExcelData = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
connExcel.Close();
connExcel.Open();
cmdExcel.CommandText = "SELECT * From [Sheet1$]";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
connExcel.Close();
GridView_Excel.Caption = Path.GetFileName(File_Path);
ViewState["GridviewData"] = dt;
GridView_Excel.DataSource = ViewState["GridviewData"] as DataTable;
GridView_Excel.DataBind();
}
代码在开发服务器上运行良好。
请帮帮我:(
我认为这都与办公室有关 AccessDatabaseEngine_X64.exe 对我来说,我必须在托管服务器上安装 office 2010 64 并在 iis 应用程序池上启用 32 位。并安装 AccessDatabaseEngine_X64.exe
然后重新启动服务器或 iis,一切都会正常进行。 我猜它与代码无关,因为我在某些服务器上遇到了这个问题,而另一些则没有。