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

时间:2011-01-20 12:39:22

标签: .net ms-office oledb

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

在我的旧电脑中,使用Microsoft Office 2007的vista 32位系统我能够连接到访问数据库(mdb文件)

现在我买了一台装有Windows 7 64bit的新电脑。

我安装了我的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位问题。

3 个答案:

答案 0 :(得分:2)

仅为ACE提供商的x64版本下载确实是不可能的。这似乎是故意的。在Solution Explorer窗口中选择您的EXE项目。项目+属性,编译选项卡,向下滚动,高级编译选项。将目标CPU更改为“x86”。

在调试代码时总是需要该设置,它在64位计算机上启用Edit + Continue并避免一些64位特定毛发。当您依赖任何32位非托管代码时,请保留Release版本的设置,就像在这种情况下一样。

答案 1 :(得分:0)

答案 2 :(得分:0)

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

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

希望它有所帮助。