OleDbConnection conn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source="+dbpath);
conn.Open();
OleDbCommand cmd=new OleDbCommand("select * from [user]",conn);
OleDbDataReader rd=cmd.ExecuteReader();

rd.Read();
string nw=rd.GetString(1);

conn.Close();
                         if(textBox1.Text!=nw)
{
MessageBox.Show("密码错误","提示");
//
return;
}
else
{
// string update="update [user] set password='"+textBox2.Text+"'";
string update="update [user] set password='123'";
//OleDbConnection conn2=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source="+dbpath);
conn.Open();
OleDbCommand cmd2=new OleDbCommand(update,conn);

MessageBox.Show(conn.State.ToString());

//cmd.CommandText=update;
cmd2.ExecuteNonQuery();
//cmd2.ExecuteScalar();
//MessageBox.Show("密码修改成功","提示");


}
能成功查询到密码并验证!
但是不能update,不管用原来的连接还是新建一个连接都出现异常:
未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中。
update语句在access中成功运行!
问题出在哪了?

解决方案 »

  1.   

    access 数据库可能有权限问题 你看看你的数据库的所有者是否有权限,就是修改数据库的权限
      

  2.   

    看看access文件本身的权限,以及这个文件是不是只读阿..
      

  3.   

    用odbc连数据库进行UPDATA 44
      

  4.   

    to zhiang75
    数据库文件不是只读
    同一数据库中另一张能增删改查
    OleDbConnection   conn=new   OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data   source= "+dbpath);
    conn.Open(); 
    string   update= "update   [user]   set   password= '123 ' "; 
    OleDbCommand   cmd2=new   OleDbCommand(update,conn); 
    cmd2.ExecuteNonQuery(); 
    改成了这个了
    还是有异常!
      

  5.   

    谢谢~解决了~
    password关键字
    加上[]后正常了
    奇怪在access中不加[]也能成功运行
    给分结帖