- C# code
/// <summary> /// 修改一条密码 /// </summary> public bool UpdatePassWord(string UserName, string PassWord) { StringBuilder strSql = new StringBuilder(); strSql.Append("update Admin set "); strSql.Append("[PassWord]=@PassWord"); strSql.Append(" where UserName=@UserName"); OleDbParameter[] parameters = { new OleDbParameter("@UserName", OleDbType.VarChar,50), new OleDbParameter("@PassWord", OleDbType.VarChar,50)}; parameters[0].Value = UserName; parameters[1].Value = PassWord; int rows = DBUtility.DbHelperAccess.ExecuteNonQuery(strSql.ToString(), CommandType.Text, parameters); if (rows > 0) { return true; } else { return false; } }
调用该方法时不能更改密码
当将:strSql.Append("[PassWord]=@PassWord");
改为:strSql.Append("[PassWord]='1111'");
执行成功....
于是认为是参数命名问题。
可当改了:@PassWord
为:@_PassWord
还是不能改密码。
大虾们求解,这是为什么呢?
------解决方案--------------------------------------------------------
改成试试
StringBuilder strSql = new StringBuilder();
strSql.Append("update Admin set ");
strSql.Append("[PassWord]=@PassWord");
strSql.Append(" where UserName=@UserName");
OleDbParameter[] parameters = {
new OleDbParameter("@PassWord", OleDbType.VarChar,50),
new OleDbParameter("@UserName", OleDbType.VarChar,50)
};
parameters[0].Value = PassWord;
parameters[1].Value = UserName;
------解决方案--------------------------------------------------------
顺序问题,参数名和赋值要一致