0

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();
    }
4

3 回答 3

0

好吧,您收到的错误表明其他人正在保持文件打开,这会阻止密码更改......

于 2011-11-25T06:08:25.633 回答
0

要更改 Access DB 密码,您必须以独占模式打开它。尝试将此添加到您的连接字符串;Exclusive=1。

createMSFile.Create("Provider=Microsoft.ACE.OLEDB.12.0;Exclusive=1;Data Source=" +
        sfdNewFile.FileName);
于 2011-11-25T06:13:25.597 回答
-1

HelpNeeder,我认为您遇到的问题应该首先在您的另一个问题中解决: 错误告诉我我没有关闭连接,但不是吗?

谢谢!

于 2011-11-25T08:50:08.753 回答