当前位置: 代码迷 >> ASP.NET >> Access数据库 PassWord字段名 很头疼的改密码有关问题
  详细解决方案

Access数据库 PassWord字段名 很头疼的改密码有关问题

热度:5626   发布时间:2013-02-26 00:00:00.0
Access数据库 PassWord字段名 很头疼的改密码问题
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;

------解决方案--------------------------------------------------------
顺序问题,参数名和赋值要一致
  相关解决方案