Не удается подключиться к моей базе данных Office 2007 MDB теперь, когда у меня есть 64-битный компьютер - PullRequest
2 голосов
/ 20 января 2011

У меня есть приложение на vb.net в visual studio 2008.

На моем старом компьютере Vista 32-битная система с Microsoft Office 2007 мне удалось подключиться к базе данных доступа (файл MDB)

Теперь я купил новый компьютер с 64-битной версией Windows 7.

Я установил Microsoft Office 2007 (то же, что и на предыдущем компьютере) и Visual Studio 2008.

Проблема в том,теперь, когда я не могу подключиться к базе данных mdb из своего приложения, я получаю исключение первого шанса типа System.Data.OleDb.OleDbException в System.Data.dll

Я установил Access Database Engine для MicrosoftОфис 2007, но это не исправило это.Когда я попытался установить Access Database Enginge для Microsoft Office 2010, версия x64, в которой говорилось, что он не может быть установлен, потому что в моей системе установлен 32-битный Office.

Я знаю, первое предложение - это удалить Microsoft Office 2007 иустановить 2010, но есть ли другой вариант?Я не хочу использовать 2010 год, только если он абсолютно необходим.

Важное примечание: если я компилирую свое приложение и затем запускаю его на моем старом компьютере (или в других 32-разрядных системах), оно отлично работает, поэтому его не нужно кодировать.проблема.Просто проблема библиотеки 32/64 бит.

Ответы [ 3 ]

2 голосов
/ 20 января 2011

Найти загрузку для x64 версии только провайдера ACE действительно невозможно на самом деле. Это кажется преднамеренным. Выберите свой проект EXE в окне Solution Explorer. Проект + Свойства, вкладка «Компиляция», прокрутка вниз, «Дополнительные параметры компиляции». Измените целевой ЦП на «x86».

Вы всегда хотите эту настройку при отладке кода, она включает Edit + Continue на 64-битной машине и избегает некоторых 64-битных специфических проблем. И сохраните этот параметр для сборки выпуска, когда у вас есть зависимость от любого 32-разрядного неуправляемого кода, как в этом случае.

0 голосов
/ 20 января 2011

попробуйте экспортировать базу данных в формат Microsoft Access 2007 (* .accdb). Затем измените строку подключения на:

oleDbConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";";

Надеюсь, это поможет.

0 голосов
/ 20 января 2011
...