OLEDB连接如何在没有实际安装驱动程序的情况下使用

4

我一直在尝试访问我机器上的MS Access数据库文件,当我安装了Office时,它能够正常工作。

当我尝试在没有安装Office/驱动程序的机器上使用相同的代码时,它会抛出一个错误"Microsoft.ACE.OLEDB.12.0提供程序未注册"。

我查看了这篇文章 Microsoft.ACE.OLEDB.12.0提供程序未注册,但该解决方案是手动安装redistributable。我想使用C#以编程方式解决此问题。

是否仅通过物理安装才能实现,这是唯一的出路吗?

1个回答

7
如果您的应用程序使用 Microsoft.ACE.OLEDB.12.0 驱动程序,则必须在计算机上安装该驱动程序。直接使用 C#“以编程方式访问数据库文件” 实际上涉及重新编写 C# 版本的Jackcess,这将是一项巨大的工作,并且没有任何实际意义(因为适用于 Windows 的正确 ACE.OLEDB 驱动程序已经免费提供)。
另一个选择是改用 Microsoft.Jet.OLEDB.4.0 驱动程序。每个 Windows 副本都安装了(32 位)Jet 驱动程序。但是,您将面临以下限制:
  1. 您的应用程序只能操作 .mdb 文件,而不能操作 .accdb 文件。
  2. 您的应用程序必须构建为 32 位应用程序。

1
谢谢,这正是我想要的。 - Sid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接