Microsoft.ACE.OLEDB.12.0 提供程序已在本地计算机上注册,但不断收到此错误



我知道这个问题已经被问了很多,但我找不到解决方法。我正在尝试导入一个 excel 文件并将其绑定到 aspxgridview。我已经在本地计算机上安装了可再发行组件AccessDatabaseEngine_X64.exe,但我一直在抱怨"Microsoft.ACE.OLEDB.12.0 提供程序未在本地计算机上注册"。下面是一段代码。

string connStr = "";
            string ext = Path.GetExtension(fuImportPP.FileName).ToLower();
            string path = Server.MapPath("~/ExcelToGrid/" + fuImportPP.FileName);
            gv = new GridView();
            fuImportPP.SaveAs(path);
            //if (ext.Trim() == ".xls")
            //    //connection string for that file which extantion is .xls  
            //    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties="Excel 8.0;HDR=Yes;IMEX=2"";
            //else if (ext.Trim() == ".xlsx")
                connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties="Excel 12.0;HDR=Yes;IMEX=2"";
            string query = "SELECT * FROM [GridViewExport$]";
            OleDbConnection conn = new OleDbConnection(connStr);
            if (conn.State == ConnectionState.Closed)
                conn.Open();
            OleDbCommand cmd = new OleDbCommand(query, conn); 
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            gv.DataSource = ds.Tables[0];
            gv.DataBind();
            phGridViewHolder.Controls.Add(gv);
            conn.Close(); 

首先检查办公室安装

的位数由于您使用的是 c#,请尝试转到项目>项目属性>单击"生成"选项卡>其平台目标位置>更改它,例如,如果您的 Office 安装是 32 位,则将其更改为 32 位,如果是 64 位,则将其更改为 64 位。

保存后,请尝试再次运行项目。

相关内容

  • 没有找到相关文章

最新更新