部署应用程序后导入excel错误
本文关键字:excel 错误 导入 应用程序 部署 | 更新日期: 2023-09-27 18:22:14
请需要您的帮助。
在我的应用程序中,我使用文件上传控件将excel文件导入数据库。当我在localhost中运行应用程序时,它运行得很好,但在部署应用程序后,当我在同一台或其他机器上运行应用程序,文件上载控件不起作用,并出现以下错误。
"Microsoft.ACE.OLEDB.12.0"提供程序未在本地计算机上注册。
上传代码:
if (FileUpload.HasFile)
{
string path = string.Concat((Server.MapPath("~/Temp/" + FileUpload.FileName)));
FileUpload.PostedFile.SaveAs(path);
OleDbConnection OleDbCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;");
OleDbCommand cmd = new OleDbCommand("Select * from [Sheet1$]", OleDbCon);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(cmd);
OleDbCon.Open();
DbDataReader dr = cmd.ExecuteReader();
string con_str = ConfigurationManager.ConnectionStrings[1].ConnectionString;
SqlBulkCopy bulkInsert = new SqlBulkCopy(con_str);
bulkInsert.DestinationTableName = "[dbo].[HP_temp]";
bulkInsert.WriteToServer(dr);
OleDbCon.Close();
Array.ForEach(Directory.GetFiles((Server.MapPath("~/Temp/"))), File.Delete);
Label_UploadMsg.ForeColor = Color.Green;
Label_UploadMsg.Text = "Imported sucess";
}
else
{
Label_UploadMsg.ForeColor = Color.Red;
Label_UploadMsg.Text = "Error";
}
安装Microsoft Access Database Engine 2010 Redistributable。https://www.microsoft.com/en-gb/download/details.aspx?id=13255
请特别注意版本的类型(32/64位)。
参考:http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-mac