我有一个应用程序需要在x64平台下构建。我需要访问.mdb文件。我所说的访问是指插入、删除或更新数据库。我在使用 Jet OLE db 和 ODBC 驱动程序时遇到问题。对于 OLE db,它显示“Jet Oledb 未注册”。驱动程序和应用程序之间的 ODBC 平台不匹配。我可以在X86平台上进行这些操作。但在我的应用程序中,我被要求在 x64 平台下构建我的项目。任何人都可以为我提供任何解决方案。注意:我不应该使用任何第三个应用程序与 x64 应用程序和数据库进行通信。
感谢任何提前回复。
您需要使用 Microsoft 的最新驱动程序 ACE
在这里您可以找到下载位 http://www.microsoft.com/en-us/download/details.aspx?id=13255
请注意为您的目标机器下载正确的集(x64 或 x86)
此外,连接字符串应该使用这些驱动程序,因此您可能需要这样的连接字符串
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourPathToTheMDBFile.mdb;
Persist Security Info=False;
作为替代方案,您可以为 x86 平台构建应用程序,如果您没有与 64 位代码进行任何直接交互,它将像在 64 位操作系统中一样工作。此解决方案更可取,因为您可以使用旧的 JET.OleDb.4.0
让我简单解释一下 64/32 位操作系统、用于构建应用程序的平台和 32/64 位驱动程序的问题:
-
您为 AnyCPU 平台构建应用程序- 你的代码工作正常
在 32/64 位系统中,JIT 编译器发出的代码将具有
与来宾操作系统的位数相同。但是,你不能使用 32 位驱动程序
64 位应用程序,反之亦然。 JET.OleDB.4.0 仅是 32 位。游戏结束如果
您可以针对 AnyCPU 进行编译并在 64 位上运行。您需要 64 位驱动程序。
-
您为 x86 平台构建应用程序- 你的代码运行良好
32/64位系统,可以使用32位驱动程序。当然是代码
JIT 编译器发出的是 32 位,因此不能使用 64 位
64 位系统上的驱动程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)