【问题标题】:Connecting to an mdb file using OdbcConnection in VS2013在 VS2013 中使用 OdbcConnection 连接到 mdb 文件
【发布时间】:2015-01-10 13:47:23
【问题描述】:

我正在尝试使用 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] 数据源名称不正确 已找到但未指定默认驱动程序

我已经安装了“Microsoft Access Database Engine 2010 Redistributable”和“2007 Office System Driver:Data Connectivity Components”,但它们都没有任何区别。我可以从 VS 2013 项目菜单中创建一个新的数据源,这一切都在设计时工作。

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

我还能做些什么来让它发挥作用?我已经尝试了所有我能想到的。

【问题讨论】:

标签: c# visual-studio-2013 oledbconnection


【解决方案1】:

我假设您无法通过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
}

【讨论】:

  • 是的,我没有意识到我一直在使用 OdbcConnection。我还必须切换到 32 位才能使用 OleDbConnection。
猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 2012-05-09
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多