Когда я пытаюсь подключиться к базе данных MS Access 2016, он отлично подключается без пароля, но когда я пытаюсь подключиться к той же базе данных после ее шифрования с помощью пароля, я получаю эту ошибку:
Cannot open the database. It may not be a database that your application recognizes, or the file may be corrupt.
вот мой код:
ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=|DataDirectory|\SCLogin.accdb;Jet OLEDB:Database Password=123"
Возможный дубликат Не удается подключиться к базе данных MS Access 2016, зашифрованной паролем, с помощью С#
Итак, вы добавили часть Jet OLEDB, и она не работает? Не уверен, но разве это не должно быть ACE OLEDB:, чтобы соответствовать провайдеру?
@CharlesMay Доступ к строкам подключения
Я уже использовал, но нет успешного результата





в доступе; попробуйте варианты и выберите более ранний метод шифрования, например метод шифрования 2007 года. Новые методы шифрования могут не работать с провайдером. Это может называться «Использовать устаревшее шифрование».
Привет, Крис, я внес изменения, но все еще сталкиваюсь с той же проблемой :) у тебя есть другая идея? Спасибо
Единственная другая вещь, о которой я могу думать, это некоторые сообщения о проблемах с паролями длиннее 14 символов. Кроме того, некоторые персонажи могут вызвать проблемы. Если у вас возникли проблемы, попробуйте изменить пароль на короткий с обычными символами. Я знаю, что в вашем примере пароль «123», но, может быть, вы используете более сложный пароль в своем производстве?
Я подумал, что решение, предложенное Крисом, сработает. Хммм... попробуй C&R. Это часто устраняет странные проблемы с Access.
Строка подключения должна выглядеть так:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Jet OLEDB:Database Password=MyDbPassword;
Ваша строка подключения работает, значит, проблема в другом. Файл заблокирован другим процессом? Файл вообще есть? Это действующая база данных?