背景
我正在开发一个连接到Microsoft Access数据库的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);
}
以下列表描述了我的开发环境:
我已安装:
问题
在我的PC 中有Windows 10 Pro OS ,我在 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'提供商未在本地计算机上注册"
问题
答案 0 :(得分:2)
将用户LarsTech在<{3}}中建议的平台目标更改为 x86 后,在具有Windows 7操作系统的最终用户计算机中没有安装Office套件。它运作正常。
我认为这种改变就足够了,但是,由于某些未知的原因,在我的电脑中,那不是。
所以,我必须再次研究,我发现了一个类似的问题comment。
此特定情况下的解决方法 是安装:
<强> here 强>
在我的案例中,创建了以下 ACEOLEDB.DLL 条目:
- C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE12
- C:\Windows\Installer\$PatchCache$\Managed\00004109C10000000000000000F01FEC\14.0.4763
我认为最后一个条目是由2010 Runtime安装创建的。