现在我有 64 位计算机,无法连接到我的 Office 2007 mdb 数据库

发布于 2024-10-13 04:03:07 字数 658 浏览 3 评论 0原文

我在 Visual Studio 2008 中的 vb.net 中有一个应用程序。

在我的旧计算机、装有 Microsoft Office 2007 的 Vista 32 位系统中,我能够连接到 Access 数据库(mdb 文件)

现在我购买了一台装有 Windows 7 64 位的新计算机。

我安装了 Microsoft Office 2007(与之前计算机中的相同)和 Visual Studio 2008。

现在的问题是我无法从我的应用程序连接到 mdb,并且我得到一个 System.Data.dll 中第一次出现“System.Data.OleDb.OleDbException”类型的异常

我安装了 Microsoft Office 2007 的 Access 数据库引擎,但没有修复它。 当我尝试安装 Access Database Enginge for Microsoft Office 2010 时,x64 版本显示无法安装,因为我的系统中有 32 位 Office。

我知道,第一个建议是卸载Microsoft Office 2007并安装2010,但是还有其他选择吗?我不想使用 2010,除非绝对必要。

重要提示: 如果我编译我的应用程序,然后在我的旧计算机(或其他 32 位系统)中运行它,它会完美运行,所以它不是编码问题。只是一个库 32/64 位问题。

I have an application in vb.net in visual studio 2008.

In my old computer, vista 32 bit system with Microsoft Office 2007 i was able to connect to the access database (mdb file)

Now i bought a new computer which has windows 7 64bit.

I installed my Microsoft Office 2007 (The same i had in previous computer) and Visual Studio 2008.

Problem is now that i cannot connect to the mdb from my application and i get a
A first chance exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

I installed Access Database Engine for Microsoft Office 2007 but it didnt fixed it.
When i tried to install Access Database Enginge for Microsoft Office 2010, the x64 version it said it cannot install because i have a 32bit Office in my system.

I know, the first suggestion is to uninstall Microsoft Office 2007 and install the 2010, but is there any other option? I dont wish to use 2010, only if is absolute neccesary.

Important note:
If i compile my application and then run it in my old computer (or other 32 bit systems) it runs perfectly so its not a coding problem. Just a library 32/64 bit problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凶凌 2024-10-20 04:03:07

找到 ACE 提供程序的 x64 版本的下载确实是不可能的。这似乎是故意的。在“解决方案资源管理器”窗口中选择您的 EXE 项目。项目+属性,编译选项卡,向下滚动,高级编译选项。将目标 CPU 更改为“x86”。

当您调试代码时,您总是需要该设置,它可以在 64 位计算机上启用“编辑 + 继续”,并避免一些 64 位特定的问题。当您依赖于任何 32 位非托管代码时(就像在本例中所做的那样),请保留发布版本的该设置。

Finding a download for the x64 version of just the ACE provider is indeed impossible afaict. This seems intentional. Select your EXE project in the Solution Explorer window. Project + Properties, Compile tab, scroll down, Advanced Compile Options. Change Target CPU to "x86".

You always want that setting when you debug code, it enables Edit + Continue on a 64-bit machine and avoids a few 64-bit specific hairs. And keep that setting for the Release build when you have a dependency on any 32-bit unmanaged code, like you do in this case.

指尖微凉心微凉 2024-10-20 04:03:07

尝试将数据库导出为 Microsoft Access 2007 格式 (*.accdb)。
然后,将连接字符串更改为:

oleDbConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";";

希望有帮助。

try exporting your database to Microsoft Access 2007 format (*.accdb).
Then, change your connection string to:

oleDbConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";";

Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文