Ошибка при открытии соединения с файлом MS Access 2007: невозможно открыть файл с информацией о рабочей группе ядра базы данных MS Office Access - PullRequest
0 голосов
/ 25 ноября 2011

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 ]

0 голосов
/ 25 ноября 2011

Чтобы изменить пароль Access DB, вы должны открыть его в эксклюзивном режиме.Попробуйте добавить это в строку подключения; Exclusive = 1.

createMSFile.Create("Provider=Microsoft.ACE.OLEDB.12.0;Exclusive=1;Data Source=" +
        sfdNewFile.FileName);
0 голосов
/ 25 ноября 2011

HelpNeeder, я думаю, что проблемы, которые вы испытываете, должны быть сначала решены в вашем другом вопросе: Ошибка говорит мне, что я не закрыл соединение, но не так ли?

Спасибо!

0 голосов
/ 25 ноября 2011

Ну, ошибка, которую вы получаете, говорит о том, что кто-то другой держит файл открытым, что препятствует смене пароля ...

...