C#  更改Access数据库的密码,如何实现使用ALTER DATABASE PASSWORD  ...  总提示密码无效

解决方案 »

  1.   

    Microsoft JET Database Engine SQLState :3031
      

  2.   

    源码贴来看看,楼主是直接修改Access的数据库密码,还是有原来的密码验证后再重设新的密码?
      

  3.   

    原来ACCESS也有密码啊,还没有用过密码保护呢,学习
      

  4.   

     string oldPwd = textBox1.Text ;
                string newPwd = textBox2 .Text ;
                
                //string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Info.mdb;Jet OLEDB:Database Password='" + oldPwd + "';";
                //cn.ConnectionString = strconn;
                cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Info.mdb;Jet OLEDB:Database Password='" + oldPwd + "';Mode=Share Deny Read|Share Deny Write;";
                try
                {
                    cn.Open();
                }
                catch (Exception e1)
                {
                    MessageBox.Show("未正常打开数据库!");
                }
     OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = cn;
                //cmd.CommandText = "ALTER   DATABASE   PASSWORD   [newPassword][OldPassword]";
                string sqlstr = "ALTER   DATABASE   PASSWORD ['" + newPwd + "'] ['" + oldPwd + "']";
                string sqlstr1 = "ALTER DATABASE PASSWORD ['111'] ['123']";
                //cmd.CommandText = "ALTER DATABASE PASSWORD ['"+ newPwd +"'] ['"+ oldPwd +"']";
                cmd.CommandText = sqlstr1;
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (OleDbException e2)
                {
                    string error = "";
                    for (int i = 0; i < e2.Errors.Count; i++)
                        error += "Index #" + i + "\n" +
                              "Message: " + e2.Errors[i].Message + "\n" +
                              "NativeError: " + e2.Errors[i].NativeError + "\n" +
                              "Source: " + e2.Errors[i].Source + "\n" +
                              "SQLState: " + e2.Errors[i].SQLState + "\n";
                    System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
                    log.Source = "My Application";
                    log.WriteEntry(error);
                    Console.WriteLine("An exception occurred. Please contact your system administrator.");
                    //show info
                    MessageBox.Show(error);            }
                cn.Close();   
      

  5.   

    access的密码 用软件一下就破了。