Подключение к базе данных формата ACCDB MS-ACCESS через OLEDB

Недавно я задал еще один вопрос о подключении к базе данных MS-ACCESS с помощью .NET в С# или VB.NET. Он работал так, как предполагалось, с MDB, но с accdb вызывал исключение в

conn.Open();

что следует:

замещающий текст http://dl.dropbox.com/u/3045472/accdb_fail.png< /а>

Есть ли другой способ сделать это? Мое первоначальное намерение (как указано в исходном вопросе) состоит в том, чтобы собрать некоторые (на самом деле много) полей.


person Marcelo    schedule 03.03.2010    source источник
comment
Ключевым моментом в ответе является то, что MDB — это формат Jet 4 (или более ранние форматы, например, Jet 3.x, с возможностью обратного чтения у провайдеров Jet 4), а ACCDB — это формат ACE (который на самом деле является Jet 4.5 или, возможно, Jet 5), поэтому вам нужно использовать провайдера для ACE (который также может читать/записывать Jet 4/3.x и, возможно, Jet 2.x).   -  person David-W-Fenton    schedule 04.03.2010
comment
На самом деле это работало без какой-либо дополнительной установки, но я сохраняю ссылку на случай, если она понадобится в клиенте.. И спасибо!   -  person Marcelo    schedule 04.03.2010


Ответы (1)


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

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\marcelo.accdb;Jet OLEDB:Database Password=MyDbPassword;"

person Andrey    schedule 03.03.2010
comment
я думаю да. или создать клиент-серверное приложение с тонкими клиентами - person Andrey; 03.03.2010
comment
Работал с reader.GetValue(3).ToString() Знаете, почему не получилось с getstring, хотя это было имя? - person Marcelo; 03.03.2010
comment
@ Андрей Я задаю связанный вопрос здесь: stackoverflow .com/questions/14475968/, не могли бы вы проверить это - person Saeid; 23.01.2013