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系统驱动程序和组件,然后将访问数据库添加为源,但这也无效.如果有人可以提供帮助,我会非常感激.
链接到我所指的文章:
如果您已经安装了 32 位 Office,那么您几乎只能使用 32 位版本的 Access 数据库引擎(又名“ACE”)。正如您所发现的,据说有一种方法可以将 64 位 ACE 强制安装到已经安装了 32 位 Office 组件的计算机上,但我个人不会“这样做”。
因此,您需要将 C# 项目配置为以 32 位运行。您可以通过Platform: x86
在项目属性的“构建”选项卡上进行选择来完成此操作:
(该屏幕截图是在 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)