我正在使用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();
}
代码在开发服务器上运行良好。
请帮帮我:(
答案 0 :(得分:0)
我认为这一切都与office和AccessDatabaseEngine_X64.exe有关 对我来说,我必须在托管服务器上安装Office 2010 64并在iis上启用32位 - 应用程序池。并安装AccessDatabaseEngine_X64.exe
然后重新启动服务器或iis,一切都会正常。 它与代码无关,我想,我因为我有一些服务器有这个问题,有些没有。