我有 C# 和 MS Access DB(.accdb) 中的桌面应用程序
我已经安装了“Ms Access Engine”,但我面临“错误:'Microsoft.Ace.OLEDB.12.0' 提供程序未在本地计算机上注册”错误。
我有 C# 和 MS Access DB(.accdb) 中的桌面应用程序
我已经安装了“Ms Access Engine”,但我面临“错误:'Microsoft.Ace.OLEDB.12.0' 提供程序未在本地计算机上注册”错误。
您需要检查的第一件事是您的应用程序的构建配置。
如果您已经在 x86 平台下构建了项目,那么为了解决您的问题,您应该在您的机器上安装以下软件包:
要使用“Microsoft.ACE.OLEDB.12.0”提供程序,您必须先 安装 Microsoft Access Database Engine 2010 Redistributable ,此安装可在以下网址获得:http: //www.microsoft.com/download/en/details.aspx ?id=13255。
安装完成后,尝试运行您的应用程序,如果这很好地解决了问题,如果没有,请继续执行步骤 2。
下一步是一个无法解释的解决方法,它适用于 Office 2010,即使它是 Office 2007 的数据连接组件。我不太确定为什么会这样,但它确实有效,并且已被证明在几乎所有情况下都有效。您需要安装 2007 Office System 驱动程序:数据连接组件,此安装位于:http: //www.microsoft.com/download/en/confirmation.aspx?id=23734。
安装完成后,尝试运行您的应用程序,这应该可以解决问题。
如果您尝试运行在 x64 或 AnyCPU 平台下构建的应用程序,我建议您首先验证它在 x86 平台下是否按预期运行。如果它不在该 x86 平台下运行,请执行第一部分中的步骤并验证它是否按预期运行。
我确实读到了包括 OLEDB 数据库驱动程序在内的 MS Access 驱动程序只能在 x86 平台下工作,并且在 x64 或 AnyCPU 平台下不兼容。但这似乎是不真实的。我在构建 x86 时验证了我的应用程序正在运行,然后我使用被动标志安装了 Access 数据库引擎。
在这两个步骤之后,我设法在 x64 或 AnyCPU 构建配置中运行我的应用程序。这似乎解决了我的问题。
注意:步骤的顺序似乎有所不同,因此请遵循。