Dave Kreskowiak
Это должна быть база данных более старого стиля (Access 2003 и старше). Обычно он использует реактивный двигатель, а не эйс, хотя эйс все еще может открыть его.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path to database.mdb;
или
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=path to database.mdb;
Конечно, вам понадобится среда выполнения Access или соответствующая версия Office, установленная для ее открытия, даже из вашего собственного кода, на каждой машине, которая будет использовать базу данных.
Для JET это Access 2003 и ниже. Для ACE это любая версия Access выше 2003 года.
РЕДАКТИРОВАТЬ:
Да, и еще ... MDB-файл должен находиться в папке, к которой пользователь имеет права на чтение и запись. Это не включает в себя ничего из программных файлов.
Alan Balkany
Спасибо, Дэйв. Попробовал и получил: "System.Data.Odbc.OdbcException: 'ERROR [IM002] [Microsoft][ODBC Driver Manager] имя источника данных не найдено и драйвер по умолчанию не указан'"
Код:
IDbConnection myConn = new OdbcConnection(GetConnectionString ());
myConn.Открыть();
Ошибка возникает при вызове Open (). Я использую вашу строку подключения вот так:
возвращение @"поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=с:\зы\данных\базы данных\экстрим.МБР;";
Это происходит с обеими строками соединения. Что я делаю не так?
Dave Kreskowiak
МММ...вы используете ODBC, а не OLEDB. Вы не можете использовать OLEDB-провайдера с ODBC.
Измените материал ODBC на версии OLEDB:
string connString = GetConnectionString();
OleDbConnection conn = new OleDbConnection(connString); // DON'T combine statements together. It make debugging code harder.
conn.Open();