读书人

Access数据库 PassWord字段名 很头疼的

发布时间: 2012-03-18 13:55:39 作者: rapoo

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;

[解决办法]
顺序问题,参数名和赋值要一致

读书人网 >asp.net

热点推荐