“未找到数据源名称且未指定默认驱动程序”用于创建访问连接

时间:2011-11-20 12:33:13

标签: c# ms-access ado.net odbc oledb

这是我与.NET中访问数据库的连接:

OdbcConnection conn = new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};Dbq=" + path + "\\Access.mdb;Uid=;Pwd=;");

我遇到了这个问题:

base {System.Data.Common.DbException} = {"ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"}

我从这里尝试了几个数据库连接字符串:http://www.connectionstrings.com/access但没有一个工作。

对此有何建议?

提前致谢。

5 个答案:

答案 0 :(得分:3)

有一种简单的方法来获取连接字符串,请按以下步骤进行尝试:

  • 创建一个文本文件,并将其扩展名更改为.udl
  • 双击打开新文件,然后选择使用任何文本编辑器打开它,例如记事本。
  • 在打开的窗口中,选择您的提供商和数据库,然后单击“确定”。
  • 使用记事本作为文本打开此文件,您将在其中找到connectoin字符串。

有关详细信息,请参阅This

答案 1 :(得分:1)

正如您在上面链接的同一站点中所看到的,连接到访问数据库的默认方式是指定Microsoft.Jet.OLEDB.4.0提供程序:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

这是否有效,如果没有,你会得到什么样的错误?

答案 2 :(得分:0)

首先,path是有效字段吗?

其次,尝试输出用于连接数据库文件的String,作为完整性检查。确保输出字符串符合您的预期,并且指定的文件存在。

答案 3 :(得分:0)

试试这个

http://www.connectionstrings.com/

更具体地说,这个

http://www.connectionstrings.com/access

我会将您的代码更改为以下内容:

OdbcConnectionStringBuilder sb = new OdbcConnectionStringBuilder();
sb.Driver = "Microsoft Access Driver (*.mdb)";
sb.Add("Dbq", "C:\\info.mdb");
sb.Add("Uid", "Admin");
sb.Add("Pwd", "pass!word1");
OdbcConnection con = new OdbcConnection(sb.ConnectionString);

答案 4 :(得分:0)

web.config添加

add name="odbcConnectionString"
    connectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ=|DataDirectory|info.mdb; "
    providerName="System.Data.OleDb"