Как подключить C# к базе данных Access с этими проблемами? - PullRequest
0 голосов
/ 01 марта 2020

Как часть программы C#, которую я пытаюсь исправить, я запускаю ее на своей машине и получаю эту ошибку: enter image description here

Я выяснил, что проблема связана с моим Microsoft Access Database Engine и я устанавливаю 64-битную версию, но я получил это сообщение: enter image description here

, и я попытался установить 32-битную версию, и я получил это сообщение: enter image description here

кто-то видел что-то вроде это и может помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 02 марта 2020

Хорошо, несколько вещей: во-первых, вы должны решить или определить, какой битовый размер вы собираетесь запускать. net приложение как.

Если вы выбрали «любой» процессор или выберите x86, то конечно, ваше. net приложение будет работать как x32. Причина, по которой «любой процессор» также работает как 32-разрядные биты, заключается в том, что Visual Studio (VS) является 32-разрядным приложением. Таким образом, «любой» означает. net будет принимать битовый размер процесса хоста.

Простая проблема заключается в том, что вам нужно / хотите / лучше указать размер *. 1066 * бит проекта и вызвать эту проблему. Если вы этого не сделаете, вы можете потратить впустую целый день. Помните, что если вы решите использовать биты x64 для своего приложения. net? Что ж, вы МОЖЕТЕ ПОЛЬЗОВАТЬСЯ мастерами и компоновщиками строки подключения в VS, но при подключении go к TEST для 64-битной версии диалоги тестового подключения в VS не будут работать. Это потому, что VS является x32-битным приложением. Таким образом, даже с x64-битной ACE / AccessDatabase вы обнаружите, что тестовое соединение будет неудачным. Однако, если ваше приложение установлено на x64, то оно будет работать. Так что имейте это в виду. Таким образом, хотя VS равен x32 битам, когда вы запускаете / отлаживаете приложение, оно учитывает настройки битов вашего проекта, но компиляторы соединений не пройдут тестирование (поэтому вы можете использовать компоновщики соединений - скажем, на панели настроек из VS, но кнопка проверки соединения не будет работать).

Так что, не используйте «любой процессор» для настроек вашего проекта. Используйте x86 или x64 (ie: размер в битах, который вы хотите и планируете использовать).

Следующее: обычно, если в прошлом у вас был установлен офис (и доступ), тогда это будет разрешить использование базы данных ACE. Тем не менее, для Office 2013 и более поздних версий при установке office, Access или Access среда выполнения больше не предоставляет ядро ​​базы данных ACE. Из-за большого количества путаницы в этом вопросе для Access 2019 (полная или во время выполнения) они полностью изменили эту политику. (таким образом, теперь снова ACE будет представлен с установкой Access).

И до 2013 года установка Access full или runtime также будет работать и выставлять механизм базы данных ACE.

Обратите внимание, что Рекомендуется использовать одну и ту же строку подключения для всех версий ядра базы данных ACE. (с 2007 года до 2019 года). Таким образом, правильная строка подключения выглядит следующим образом:

Это означает, что для ACE 2007, 2010, 2013, 2016, 2019 мы должны использовать это:

Если вы используете провайдера oleDB, то:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test2\test44.accdb

Если используется поставщик ODB C, то:

Driver={Microsoft Access Driver (*.mdb, *.accdb)};
dbq=C:\Test2\test44.accdb;defaultdir=C:\Test2;

Установка ядра данных ACE вместо более широкой и доступной установки Access (или Access Runtime).

Now при условии, что у вас не установлен Access. И если предположить, что вы имеете дело с 2013, 2016, то вам достаточно много нужно установить механизм данных ACE.

Вы хотите загрузить движок ace отсюда:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

Убедитесь, что вы загружаете и пытаетесь установить правильную версию в битовом формате .

Обход диалоговых окон, которые жалуются на то, что Office x32 или x64 уже установлены. Оказывается, что так много частей и частей офиса совместно используются всеми программами, что если вы установите, скажем, Excel, x32, то вы не сможете установить ЛЮБУЮ ДРУГУЮ офисную программу из word в power-point или Access как x64. Вы можете установить разные версии офиса, но НИКОГДА не смешивать и не подбирать битовый размер для ПОДАРОЧНОЙ версии офиса. Это связано с большим количеством DLL-файлов и общего кода между офисными программами.

ОДНАКО вы МОЖЕТЕ принудительно установить и установить модуль ACE независимо от размера бита.

Загрузить Установка двигателя ACE (желаемый размер бит). Но теперь запустите установщик из командной строки. Добавьте ключ / quiet к установке. Это заставит установщик обойти нытье и жаловаться на размер бита.

Итак, из командной строки, go:

C:\runtimetest>AccessDatabaseEngine.exe /quiet

или для x64, я думаю, что это :

C:\runtimetest>AccessDatabaseEngine_64.exe /quiet

(работает с памятью формы - но просто используйте / quiet swtich - она ​​должна позволить вам продолжить установку.

Последнее, но не менее важное:

Вы можете скачать мой пример утилиты здесь : https://1drv.ms/u/s! Avrwal_LV4qxhpdBSWWSP5Ivv38AZw? E = dTVQis

Это небольшой крошечный. net exe-файл (без установки). Он имеет версию x32 bit и версию x64 bit . Вы можете запустить / попробовать / протестировать любую версию, чтобы увидеть, какой битовый размер доступа работает или установлен. Он показывает это: enter image description here

Если вышеуказанная утилита не работает (версия x32 или x64), значит, у вас не установлена ​​действующая рабочая база данных ACE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...