«Имя источника данных не найдено и драйвер по умолчанию не указан» для создания подключения доступа - PullRequest
3 голосов
/ 20 ноября 2011

Это мое подключение к базе данных доступа в .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 ]

3 голосов
/ 20 ноября 2011

Существует простой способ получить строку подключения, попробуйте ее следующим образом:

  • Создайте текстовый файл и измените его расширение на .udl.
  • Откройте новыйдважды щелкните файл и выберите его в любом текстовом редакторе, например, в блокноте.
  • В открывшемся окне выберите поставщика и базу данных и нажмите кнопку ОК.
  • Откройте этот файл с помощьюБлокнот в виде текста, и вы найдете строку подключения внутри него.

См. Это для получения дополнительной информации.

1 голос
/ 20 ноября 2011

Как вы можете видеть на том же сайте, на который вы ссылались выше, по умолчанию для подключения к базе данных доступа указывается поставщик Microsoft.Jet.OLEDB.4.0:

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

это работает, и если нет, какие ошибки вы получаете?

0 голосов
/ 09 июля 2013

web.config add

add name="odbcConnectionString"
    connectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ=|DataDirectory|info.mdb; "
    providerName="System.Data.OleDb"
0 голосов
/ 20 ноября 2011

Попробуйте это

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);
0 голосов
/ 20 ноября 2011

Во-первых, является ли path допустимым полем?

Во-вторых, попробуйте вывести строку, которую вы используете для соединения с файлом базы данных, в качестве проверки работоспособности.Убедитесь, что выходная строка соответствует ожидаемой, и что указанный файл существует.

...