Microsoft.ACE.OLEDB.12.0 提供程序已在本地计算机上注册,但一直出现此错误
The Microsoft.ACE.OLEDB.12.0 provider IS registered on the local machine but keep getting this error
我知道这个问题已经被问了很多,但我找不到解决办法。我正在尝试导入一个 excel 文件并将其绑定到 aspxgridview。我已经在我的本地机器上安装了 AccessDatabaseEngine_X64.exe 可再发行组件,但我一直在获取 "The Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine"。下面是一段代码。
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();
首先检查一下你的office安装的位数
由于您使用的是 c#,请尝试转到“项目”>“项目属性”>“构建”选项卡>“平台目标”位置>更改它,例如,如果您的 Office 安装是 32 位,则将其更改为 32 位,如果是64位然后改成64位。
保存并再次尝试 运行 您的项目。
我知道这个问题已经被问了很多,但我找不到解决办法。我正在尝试导入一个 excel 文件并将其绑定到 aspxgridview。我已经在我的本地机器上安装了 AccessDatabaseEngine_X64.exe 可再发行组件,但我一直在获取 "The Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine"。下面是一段代码。
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();
首先检查一下你的office安装的位数
由于您使用的是 c#,请尝试转到“项目”>“项目属性”>“构建”选项卡>“平台目标”位置>更改它,例如,如果您的 Office 安装是 32 位,则将其更改为 32 位,如果是64位然后改成64位。
保存并再次尝试 运行 您的项目。