部署应用程序后导入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";
}

部署应用程序后导入excel错误

安装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