![]() |
#2
yms1232013-08-26 11:25
|
用户修改密码时,需要输入旧密码,只有旧密码对了才能修改新的密码,但问题是无论输入什么旧密码都能验证通过,
我检查过代码貌似没发现哪错了,请大神能指点迷津,谢谢!
以下代码为DB类中的一个方法UserPassChange(),供其他页面调用

//用户更改密码
public int UserPassChange(string userno,string oldpwd,string newpwd)
{
SqlConnection conn = Getcon(); // 数据库调用没有问题
conn.Open();
string sqlstr1 = "select * from UserInfo where UserNo='"+userno+"' and UserPwd='"+oldpwd+"'";
string sqlstr = "update UserInfo set UserPwd='"+newpwd+"' where UserNo='"+userno+"'";
SqlCommand cmd1 = new SqlCommand(sqlstr1,conn);
SqlCommand cmd = new SqlCommand(sqlstr,conn);
if (cmd1.ExecuteNonQuery() != 0)
{
int i;
if (cmd.ExecuteNonQuery() != 0)
{
i=1; //密码修改成功
}
else
{
i= -1; //密码修改失败
}
return i;
}
else
{
return 0; // 旧密码不正确,不能修改密码
}
}
以下代码为实际调用

protected void Button1_Click(object sender, EventArgs e)
{
string oldpwd = txt_oldpwd.Text;
string newpwd = txt_newpwd.Text;
DB db= new DB();
switch (db.UserPassChange(userno,oldpwd,newpwd))
{
case 0:
Response.Write("<script>alert('旧密码不正确,请重新输入');</script>");
break;
case 1:
Response.Write("<script>alert('密码修改成功');</script>");
break;
case -1:
Response.Write("<script>alert('密码修改失败');</script>");
break;
}
}