背景
我正在开发一个连接到Microsoft数据库的Windows表单应用程序。
这是我在开发中使用的示例代码:
try
{
string AccessFilePath = @"\.myDataBase.mdb"; // Path of the Access database.
string sqlStatement = "SELECT * FROM myTable WHERE IdTable = 5;";
string connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + AccessFilePath;
OleDbConnection conn = new OleDbConnection(connstr);
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlStatement;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox("Error: " + ex.Message);
}下面的列表描述了我的开发环境:
我已经安装了:
发行
在拥有Windows10Pro操作系统的个人电脑中,我在C:/硬盘中搜索,发现ACEOLEDB.DLL已经安装在以下位置:
这是在安装数据连接组件之前的:
- C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14单击此处可放大图像:

当我在PC中安装数据连接组件时,ACEOLEDB.DLL位于:
- C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared我真的不知道为什么即使在安装了组件之后,我仍然会收到以下错误:
“'Microsoft.ACE.OLEDB.12.0‘提供程序未在本地计算机上注册”
问题
发布于 2016-08-22 21:43:28
在将Platform Target更改为x86后,如用户LarsTech在其评论中所建议的那样,在最终用户计算机中使用Windows 7操作系统,并且没有安装Office套件。它正常工作了。
我以为这个改变就足够了,但是,由于一些未知的原因,在我的电脑里,这还不够。
因此,我不得不再次研究,我发现了一个类似的问题,这里。
在这种特殊情况下的解决方法是安装:
Microsoft 2010运行时
在我的例子中,创建了以下ACEOLEDB.DLL条目:
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE12
- C:\Windows\Installer\$PatchCache$\Managed\00004109C10000000000000000F01FEC\14.0.4763我认为最后一个条目是由2010年运行时安装创建的。
https://stackoverflow.com/questions/39020305
复制相似问题