函数如下:public static bool UpdataPassword(string newpassword,string userid)         //更新密码
{
OleDbConnection Dbconn;
Dbconn=neto.db.DbConn.getdbConn();
try 
{

Dbconn.Open();
OleDbCommand Dbcom = new OleDbCommand();
Dbcom.Connection=Dbconn;
Dbcom.CommandText="update OPERATOR set PASSWORD=? where USERID=?";
Dbcom.Parameters.Add(new System.Data.OleDb.OleDbParameter("PASSWORD", System.Data.OleDb.OleDbType.VarChar, 80, "PASSWORD"));
Dbcom.Parameters.Add(new System.Data.OleDb.OleDbParameter("USERID", System.Data.OleDb.OleDbType.VarChar, 80, "USERID"));

Dbcom.Parameters["PASSWORD"].Value=newpassword;
Dbcom.Parameters["USERID"].Value=userid;
Dbcom.ExecuteNonQuery();
return true; // 
}
catch (Exception e) 
{
string tr=e.Message;
return false;
}
finally 
{
Dbconn.Close();
}
}
}
为什么我执行到Dbcom.ExecuteNonQuery();的时候就停在那什么反应也没有了呢,单独执行update语句是行的,,奇怪啊

解决方案 »

  1.   

    你单独执行SQL语句能通过?
    改为这样试下:
    update OPERATOR set PASSWORD='?' where USERID='?'
      

  2.   

    Dbcom.Parameters.Add(new System.Data.OleDb.OleDbParameter("PASSWORD", System.Data.OleDb.OleDbType.VarChar, 80, "PASSWORD"));
    Dbcom.Parameters.Add(new System.Data.OleDb.OleDbParameter("USERID", System.Data.OleDb.OleDbType.VarChar, 80, "USERID"));

    Dbcom.Parameters["PASSWORD"].Value=newpassword;
    Dbcom.Parameters["USERID"].Value=userid;
    里面有错误,检查一下吧
      

  3.   

    你改下 字段名: password 试下看得不!
      

  4.   

    Dbcom.CommandText="update OPERATOR set PASSWORD=? where USERID=?";不对!!
      

  5.   

    你构造参数时有问题,参照下msdn的参数提供的方法:public void CreateMyOleDbCommand(OleDbConnection myConnection,
    string mySelectQuery, OleDbParameter[] myParamArray) {
       OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
       myCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
       myCommand.Parameters.Add(myParamArray);
       for (int j=0; j<myParamArray.Length; j++)
       {
          myCommand.Parameters.Add(myParamArray[j]) ;
       }
       string myMessage = "";
       for (int i = 0; i < myCommand.Parameters.Count; i++) 
       {
          myMessage += myCommand.Parameters[i].ToString() + "\n";
       }
       MessageBox.Show(myMessage);
    }
      

  6.   

    it'is an usual mistake, try this:Dbcom.CommandText="update OPERATOR set [PASSWORD]=? where USERID=?";
      

  7.   

    Dbcom.CommandText="update [OPERATOR] set [PASSWORD]=? where USERID=?";
      

  8.   

    把异常处理去了,再试试,看看是不是更新时的sql语句写得不对?
      

  9.   

    试试 swordragon(古道热肠) 的做法。
      

  10.   

    为什么喜欢catch错误然后就扔掉呢,尤其在调试阶段连错误都不好找不过就你的代码看不出什么问呢,在字段名上面加[]再看看吧
      

  11.   

    看了一下,access里面password 是保留字,必须加[]
      

  12.   

    Dbcom.CommandText="update [OPERATOR] set [PASSWORD]='?' where USERID='?'";