在 VS2013 中使用 OdbcConnection 连接到 mdb 文件

Connecting to an mdb file using OdbcConnection in VS2013

我正在尝试使用 OdbcConnection 从 C# 2013 连接到一个 mdb 文件。我曾经在我的 Windows 7 和 Windows 8 机器上安装 Office 2000,但我已经在两台机器上升级到 Office 2013,现在它不再可以在任何一台机器上运行。我的数据库仍然是 mdb 格式。

代码如下:

const string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Path\Mydb.mdb";
OdbcConnection connRL = new OdbcConnection();
connRL.Open();

无论我尝试什么,我都会收到以下错误:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

我已经安装了 "Microsoft Access Database Engine 2010 Redistributable" 和“2007 Office 系统驱动程序:数据连接组件”,但它们都没有任何区别。我可以从 VS 2013 项目菜单创建一个新的数据源,并且在设计时一切正常。

当我创建一个空白的 udl 文件并双击它并转到提供程序选项卡时,没有列出任何关于 Access 或 Jet 的内容,但我可以在 HKEY_CURRENT_USER\Software\Microsoft\VWDExpress.[=26 的注册表中看到提供程序=].为什么他们不在那里?

我还能做些什么来让它工作?我能想到的都试过了

我假设您无法通过 OdbcConnection 连接到 mdb。无论如何,要连接到数据库,您必须在您的代码中未指定的连接对象上指定连接字符串。

要访问 mdb,请使用如下代码:

const string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Path\Mydb.mdb";
using(var connRL = new OleDbConnection(myConnectionString))
{
    //use your connection
}