首页 > 解决方案 > Microsoft Office 12.0 Access 数据库引擎 OLE DB Provider

问题描述

系统:Windows 10 64 位

安装的程序:

C# 和 Access 数据库之间的连接不成功。

错误信息:

Microsoft Office 12.0 Access 数据库引擎 OLE DB Provider。

如何在不卸载 Microsoft Access Database Engine 2010 32bit 的情况下成功连接?

标签: c#ms-accesscrystal-reportsms-jet-ace

解决方案


一些事情:你提到你有office x64位,但你没有提到或注意那个版本的office是否包含Access——它可能没有。您还提到您安装了 Access x32 位。那么最大的问题是您想以 x32 还是 x64 运行您的 .net 应用程序?

默认情况下,如果您的 .net 项目是“ANY CPU”或 x86,那么您的代码将以 x32 运行,因此从 Access 2010 安装的 x32 位版本的 ACE 应该可以工作 - 但前提是您为 .net 选择的 CPU 是“任何”或 x86。

如果您需要或想要使用 x64 位进程?好吧,您必须从办公室安装 ACE/office 连接包。事实上,即使您的办公室安装包括 Access 2016 或 2019,您仍然必须安装 ACE 数据引擎。对于 2010,您不需要单独安装 ACE,但对于 2016 及更高版本,您必须单独安装 ACE。

另外请记住,如果您强制将 .net 项目作为 x64 位运行,那么 Visual Studio 内部的测试连接将失败,因为它是 x32 位进程。(VS 是一个 x32 位程序 - 因此您可以在 VS 中使用连接构建器,但对于 64 位测试连接将失败,但运行程序(即使作为调试)将以 x64 位运行,您应该/可以使用 ACE x64 位如果它已安装。所以请记住,对于 x64 位,VS 内部的“测试”连接将不起作用。但运行代码会。

如前所述,如果您尝试使用 x32 位,则强制您的 VS 项目使用 x86 并进行测试。Access 2010 ACE 应该可用。如果不是,那么我将对 2010 安装进行修复 - 它可能已被安装更高版本的 office 损坏或弄乱了。


推荐阅读