Не удается получить доступ к защищенной паролем базе данных Microsoft accdb Microsoft.ACE.OLEDB.12.0

Ноутбук с Windows 10 x64 бит

у меня майкрософт аксесс 2010

Установлены драйвера:

-Ядро базы данных Microsoft Office Access 2007 (думаю, 32-битная)

-Ядро базы данных Microsoft Access 2010 (думаю, 64-битная)

Недавно я унаследовал проект C # (я думаю, .net 4.0) в качестве младшего, но у меня возникли проблемы с правильной настройкой кода, и, судя по тому, что я прочитал, это связано с тем, что проект использует (защищенную паролем) базу данных Microsoft Access. Сначала им занимался один главный разработчик, а затем он был передан мне.

Установка драйвера Microsoft 2007 помогла решить «проблемы с регистрацией», но я обнаружил, что программа не может получить доступ к базе данных.

Запустив код, я получаю сообщение об ошибке ниже.

System.Data.OleDb.OleDbException: не удается открыть базу данных ''. Возможно, это не та база данных, которую распознает ваше приложение, или файл может быть поврежден.

Я обнаружил, что если я открою Microsoft Access 2010, создам пустую базу данных, импортирую все из исходной базы данных, а затем сохраню без пароля, то кажется работать нормально. Но когда задействован пароль, он перестает работать

Мой файл App.Config:

<add key ="exampletest"
     value ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test\testDB.accdb;" />

В моем файле accesshelper:

Public static readonly string ConnectionString = 
  ConfigurationManager.AppSettings["exampletest"].ToString() +
  "Jet OLEDB:Database Password=Abc1234;";

...

Using (OleDbConnection conn = new OleDbCommection(connectionString))
{
...
If (con.State !=ConnectionState.Open)
   conn.Open();
...
}

Код отлично работает с первоначальным разработчиком, но я не могу воспроизвести тот же успех без обходных путей, таких как удаление пароля (пароль в коде (Abc1234) правильный. Я знаю, потому что если я открою базу данных в Microsoft Access 2010 ; Мне нужно ввести пароль)


person CaptainObv    schedule 07.02.2019    source источник
comment
Где находится ваша база данных? Это проект ASP.Net?   -  person Maciej Los    schedule 08.02.2019
comment
@Maciej Лос, файл базы данных находится в моей рабочей области Git на моем ноутбуке. Это проект .Net 4.0. Я не слишком хорошо знаком с ASP.Net, извините, С#   -  person CaptainObv    schedule 08.02.2019


Ответы (1)


Найдено решение. Проблема, которую я исследовал, похоже, связана с проблемами совместимости/конфликта между 32-битными/64-битными драйверами баз данных Microsoft.

(Для справки, у меня есть: Microsoft Access 2010 64-разрядный механизм базы данных Microsoft Office Access 2007 (32-разрядный драйвер) механизм базы данных Microsoft Access 2010 (64-разрядный драйвер))

Со стороны водителя, не уверен, что мне нужны оба. Но драйвер 2007 года был для меня ОБЯЗАТЕЛЬНЫМ.

Теперь о разрешении:

В визуальной студии мне просто нужно щелкнуть правой кнопкой мыши по проекту, а в разделе сборки я просто выбираю «Любой процессор» в качестве целевой платформы (не то же самое, что выбрать «Любой процессор» для отладки/выпуска).

person CaptainObv    schedule 10.02.2019