x64应用程序访问mdb数据库

时间:2012-12-14 13:40:07

标签: c# ms-access-2007 windows-7-x64

我有一个需要在x64平台下构建的应用程序。我需要访问 .mdb 文件。通过访问我的意思,插入,删除或更新数据库。我在使用Jet OLE数据库和ODBC驱动程序时遇到问题。使用OLE db,它显示“Jet Oledb未注册”。 ODBC平台驱动程序和应用程序之间不匹配。我可以在X86平台上进行这些操作。但在我的应用程序中,我被要求在x64平台下构建我的项目。任何人都可以为我提供任何解决方案。注:我不应该使用任何第三个应用程序与x64应用程序和数据库进行通信。

感谢您提前做出的任何回复。

1 个答案:

答案 0 :(得分:3)

您需要使用Microsoft的最新驱动程序ACE Here you can find the download bits

注意为您的目标计算机下载正确的设置(x64或x86) 连接字符串也应该使用这些驱动程序,因此您可能需要一个像这样的连接字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourPathToTheMDBFile.mdb;
Persist Security Info=False;

作为替代方案,您可以为x86平台构建应用程序,如果您没有与64位代码直接交互,它将在64位操作系统中运行。这个解决方案是首选,因为您可以使用旧的JET.OleDb.4.0

让我简单解释64 / 32bit操作系统,用于构建应用程序的平台和32/64位驱动程序的问题:

  • 您为AnyCPU平台构建应用程序 - 您的代码运行正常 在32/64位系统中,JIT编译器发出的代码将具有 客户操作系统的相同位数。但是,你无法使用32位驱动程序 64位应用程序和反之亦然。 JET.OleDB.4.0仅为32位。游戏结束如果 你为AnyCPU编译并在64位上运行。你需要64位驱动程序。
  • 您为x86平台构建应用程序 - 您的代码可以正常运行 32/64位系统,您可以使用32位驱动程序。当然是代码 JIT编译器发出的是32位,因此你不能使用64位 64位系统上的驱动程序。