我正在尝试使用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();
无论我尝试过什么,我都会收到以下错误:
错误[IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称不是 找到并且没有指定默认驱动程序
我已经安装了" Microsoft Access数据库引擎2010可再发行组件"和#34; 2007 Office System驱动程序:数据连接组件"但他们都没有任何区别。我可以从VS 2013项目菜单中创建一个新的数据源,并且所有数据源都在设计时工作。
当我创建一个空白的udl文件并双击它并转到提供程序选项卡时,没有列出任何关于Access或Jet的内容,但我可以在注册表中看到HKEY_CURRENT_USER \ Software \ Microsoft \ VWDExpress中的提供程序\ 12.0_Config \的dataProvider。他们为什么不在那里?
我还能做些什么才能让它发挥作用?我已经尝试了我能想到的一切。
答案 0 :(得分:1)
我认为您无法通过mdb
连接OdbcConnection
。无论如何,要连接到DB,必须在连接对象上指定未在代码中指定的连接字符串。
要访问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
}