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

问题描述 投票:0回答:1

我知道这个问题很多,但我找不到修复。我正在尝试导入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# asp.net oledb aspxgridview oledbconnection
1个回答
2
投票

首先检查办公室安装的位数 由于您正在使用c#,请尝试并转到项目>项目属性>单击构建选项卡>其中的平台目标>更改它,例如,如果您的Office安装是32位,然后将其更改为32位,如果是64位然后将其更改为64位。 之后保存并尝试再次运行您的项目。

© www.soinside.com 2019 - 2024. All rights reserved.