Как открыть соединение с базой данных Microsoft Access в C#
Я использую Microsoft Access для создания моей базы данных. Вот мой код:
static string Constr = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source = MyData.accdb";
OleDbConnection Conn = new OleDbConnection(Constr);
DataSet DataSet1 = new DataSet();
string SQLstr = "Select * from Tabel";
OleDbDataAdapter DataAdapter1;
Conn.Open();
Я получаю это исключение:
необработанное исключение типа System.Данные.Oledb для.OleDbException ' произошло в системе.Данные.dll файлы
дополнительная информация: нераспознаваемый формат базы данных
1 ответов
вы пытаетесь открыть базу данных Access, созданную с Access 2007/2010 (accdb) с поставщиком OleDb, который может понимать только файлы MDB, созданные с Access 2003
провайдер использовать Microsoft.ACE.OleDB.12.0
это должно быть уже установлено с последней версией Office.
в альтернативном варианте вы можете загрузить соответствующие биты из Microsoft Access Database Engine
Просто обратите внимание, чтобы загрузить версию, соответствующую платформа (x86 или x64), которую вы используете.
и это строка подключения для использования
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MyData.accdb";
Примечание: имейте в виду, что если у Вас установлен Office, соответствующий поставщик имеет ту же битность Office, поэтому с Office 64bit поставляется ACE в 64-битной версии и то же самое для 32bit. Этот сценарий создает очень сложную проблему при развертывании приложения. Вам нужно скомпилировать приложение с той же битностью, или вы не сможете использовать поставщика установленный. (Или отключите несовместимую версию Office и переустановите совместимую версию. Конечно, если вы должны быть в состоянии убедить своего клиента, что Office является несовместимым приложением : -)