“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机错误消息上注册

时间:2014-09-29 09:55:16

标签: c# asp.net

我不知道我错在哪里。

当我使用本地机器程序成功运行时。 但是当我在服务器上传时,会出现像' Microsoft.ACE.OLEDB.12.0'提供商未在本地计算机上注册

           protected void btnImport_Click(object sender, EventArgs e)
          {
      // try{
          string connectionstring = "";
          string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
        string fileextension = Path.GetExtension(FileUpload1.PostedFile.FileName);
        string filelocation = Server.MapPath("~/file/") + filename;
        FileUpload1.SaveAs(filelocation);
        if (fileextension == ".xlsx")
        {
            connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filelocation + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=2\"";
            OleDbConnection conn = new OleDbConnection(connectionstring);
            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.CommandText = "select * from [Sheet1$]";
            cmd.Connection = conn;
            OleDbDataAdapter oda = new OleDbDataAdapter(cmd);
            System.Data.DataTable dt = new System.Data.DataTable();
            oda.Fill(dt);
            grvExcelData.DataSource = dt;
            Session["TaskTable"] = dt;
            grvExcelData.DataBind();
        }
      // }catch(Exception ex){Response.Write(ex.Message);  }
    }

错误图片     enter image description here

1 个答案:

答案 0 :(得分:0)

在服务器上安装 32位 OLEDB 12.0驱动程序,您可以找到它here。或者,如果您想使用(基于xml的)excel文件而不在服务器上安装内容,则可以使用优秀的EPPlus之类的东西。