与MS Access建立连接

Joh*_*ith 5 c# oledb ms-access oledbconnection

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

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

对我来说都是错误的.我在尝试创建Access连接时一直在尝试.我不知道该怎么做了.

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

我发现另一个可能的解决方案,即下载Office系统驱动程序和组件,然后将访问数据库添加为源,但这也无效.如果有人可以提供帮助,我会非常感激.

链接到我所指的文章:

Gor*_*son 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)
Run Code Online (Sandbox Code Playgroud)

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

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

应该显示

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