Ошибка при открытии соединения с файлом MS Access 2007: невозможно открыть файл с информацией о рабочей группе ядра базы данных MS Office Access
Cannot open the MS Office Access database engine workgroup information file
- Когда у меня есть код, как опубликовано.
В моем коде я пытаюсь создать файл MS Access 2007, а затем установить для него имя пользователя и пароль из моей программы. Что я здесь не так делаю?
Ошибка происходит здесь: objOleDbConnection.Open();
РЕДАКТИРОВАТЬ: я сделал некоторые изменения, кажется, что он открывает соединение, но команда неверна.
Теперь проблема здесь:
objOleDbCommand.CommandText =
"ALTER USER " + storedAuth.UserName +
" PASSWORD [" + storedAuth.Password + "] []";
Весь код:
// Creating an object allowing me connecting to the database.
OleDbConnection objOleDbConnection = new OleDbConnection();
objOleDbConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + sfdNewFile.FileName + ";Persist Security Info=False";
// Creating command object.
OleDbCommand objOleDbCommand = new OleDbCommand();
objOleDbCommand.Connection = objOleDbConnection;
try
{
objOleDbConnection.Open();
objOleDbCommand.CommandText = "ALTER USER " +
storedAuth.UserName + " PASSWORD [" +
storedAuth.Password + "] []";
objOleDbCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
// Displaying any errors that
// might have occured.
MessageBox.Show("Error: " + ex.Message);
}
finally
{
objOleDbConnection.Close();
}
3 ответа
Чтобы изменить пароль доступа к БД, его необходимо открыть в эксклюзивном режиме. Попробуйте добавить это в строку подключения;Exclusive=1.
createMSFile.Create("Provider=Microsoft.ACE.OLEDB.12.0;Exclusive=1;Data Source=" +
sfdNewFile.FileName);
Ну, ошибка, которую вы получаете, говорит о том, что кто-то еще держит файл открытым, что предотвращает смену пароля...
HelpNeeder, я думаю, что проблемы, с которыми вы сталкиваетесь, должны быть решены в другом вашем вопросе: Ошибка говорит мне, что я не закрыл соединение, но не так ли?
Спасибо!