【问题标题】:Microsoft Office 12.0 Access database engine OLE DB ProviderMicrosoft Office 12.0 Access 数据库引擎 OLE DB Provider
【发布时间】:2019-12-12 17:39:58
【问题描述】:

系统:Windows 10 64 位

已安装的程序:

  • Visual Studio 2019
  • MS Office 2019 64 位
  • Microsoft Access 数据库引擎 2010 32 位

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

错误信息:

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

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

【问题讨论】:

  • 在 Build-Configuration Manager 中将 Active Solution Platform 更改为 x86
  • 您的连接字符串可能正在使用 ACE。因此,您需要将连接字符串更改为正确的 Office 版本。 ACE 驱动器是 ADO.NET,由于使用了错误的连接字符串,它没有找到驱动程序。 12.0 是 Office 2010,16.0 是 Office 2019。
  • 不,当我安装 microsoft access database engine 2010 64bit 时连接成功,我需要用 microsoft access database engine 2010 32bit 成功
  • 为什么您需要 32 位版本的 Provider,因为正如您所说,64 位版本已经可以使用?请注意,您不能同时安装 32 位和 64 位的 Provider 的保存版本,但您可以拥有 2 个不同位数的不同 Provider。

标签: c# ms-access crystal-reports ms-jet-ace


【解决方案1】:

有几点: 你提到你有office x64位,但你没有提到或注意那个版本的office是否包含Access——它可能没有。 您还提到您安装了 Access x32 位。那么最大的问题是您希望将 .net 应用程序作为 x32 还是 x64 运行?

默认情况下,如果您的 .net 项目是“ANY CPU”或 x86,那么您的代码将以 x32 运行,因此从 Access 2010 安装的 x32 位版本的 ACE 应该可以工作 - 但前提是您的 CPU 选择为 . net 是“ANY”或 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 损坏或弄乱了。

【讨论】:

  • 我的项目“任何 cpu”但不工作这是个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-08
相关资源
最近更新 更多