5

Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册。

Microsoft.JET.OLEDB.4.0' 提供程序未在本地计算机上注册。

对我来说都是错误。在尝试创建 Access 连接时,我一直在尝试这两种方法。我不知道该怎么办了。

我在 64 位机器上有 32 位办公室。我找到了他们说要安装 Access 数据库引擎的解决方案,但它不允许我安装 64 位和 32 位办公室。提到绕过这个的另一个来源,您可以进入命令行并执行,$> AccessDatabaseEngine_X64.exe /passive但被动不被识别为命令。

我找到了另一个潜在的解决方案,它说要下载 Office 系统驱动程序和组件,然后将访问数据库添加为源,但这也不起作用。我的想法已经用完了,如果有人可以提供帮助,将不胜感激。

我所指的文章的链接:

4

2 回答 2

2

如果您已经安装了 32 位 Office,那么您几乎只能使用 32 位版本的 Access 数据库引擎(又名“ACE”)。正如您所发现的,据说有一种方法可以将 64 位 ACE 强制安装到已经有 32 位 Office 组件的机器上,但我个人不会“去那里”。

因此,您需要将 C# 项目配置为以 32 位运行。您可以通过选择Platform: x86项目属性的构建选项卡来做到这一点:

平台.png

(该截图是在 32 位虚拟机上截取的,所以默认配置已经是 32 位。64 位机器上的默认设置应该是“任何 CPU”。)

要验证进程运行的环境,您可以使用

String.Format("I am running as {0}-bit.", IntPtr.Size * 8)

例如,在 Windows 窗体应用程序中,您可以使用

MessageBox.Show(String.Format("I am running as {0}-bit.", IntPtr.Size * 8));

那应该显示

I am running as 32-bit.
于 2013-10-30T14:51:04.283 回答