0

我正在使用 Ms access 数据库(.mdb)和 Visual Studio 2012 开发 Windows 应用程序,当我第一次运行应用程序错误时说:

microsoft.jet.oledb.4.0 is not registered in the local machine

在看到所有帖子后,我通过将 AnyCpu 更改为 X86 解决了这个错误,然后它在 Visual Studio 运行时工作正常.....

但是..现在我创建了一个设置,当我运行设置时,开发人员 PC 上发生了同样的错误。

电脑配置:

Windows 8,VS2012,64位

请让我知道在这里做什么。

4

3 回答 3

4

要解决此问题,请在 Visual Studio 中打开项目,然后:

  1. 在解决方案资源管理器中右键单击您的项目,然后单击属性
  2. 单击构建选项卡
  3. 将平台目标从:任何 CPU 更改为 x86
  4. 重新构建您的解决方案

5.检查设置的traget平台是否为x86

于 2013-07-05T09:52:55.967 回答
0

我不知道您使用的是什么运行时,但可能是Access Redistributable,它以 32 位和 64 位形式存在。据我所知,您不能同时安装两者,而 64 位的应用程序将不支持 32 位应用程序,反之亦然。

我的解决方案是强加 32 位运行时并编辑 UDL 文件,而不是通过单击它,而是通过编辑它,例如

C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl

正如这里所解释的

您可能还会发现此信息很有帮助,我承认我的解决方法可能有点笨拙,但这是避免该问题的最简单方法...

于 2013-07-05T09:01:56.037 回答
0

Microsoft.Jet.OLEDB.4.0 驱动程序与 64 位 Windows 不兼容,这就是您收到错误的原因。如果您有其他应用程序使用该连接字符串,则它们很可能设置为在 Windows 32 位模式下运行。

MS 发布了一个可以在 32 位和 64 位模式下运行的驱动程序,你可以在这里找到它:

http://www.microsoft.com/download/en/details.aspx?id=13255

于 2015-05-04T14:12:57.663 回答