我用asp.net修改用户密码,代码如下
 string username=this.txt_admin.Text.Trim();
   string userpass=FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_pass.Text.Trim(),"MD5");
   string userpass1=FormsAuthentication.HashPasswordForStoringInConfigFile (this.txt_repass .Text.Trim(),"MD5");
if(userpass!= userpass1)

lbl_errors.Visible=true;
lbl_errors.Text="两次输入密码不一致";
this.lbl_errors.ForeColor=System.Drawing.Color.Red;
return;
}
       
   string Sql="";
           

Sql="Update tbl_admin set username='"+this.txt_admin.Text.Trim()+"'password='"+userpass+"' where username="+this.txt_admin.Text.Trim();
Myconn=new OracleConnection(ConfigurationSettings.AppSettings["CnStirng"]);
Mycommand=new OracleCommand();
Myconn.Open();
Mycommand.Connection=Myconn;
try
{
Mycommand.CommandText=Sql;
Mycommand.ExecuteNonQuery();
ErrorMsg("用户名和密码成功修改.",true);
}
catch
{
ErrorMsg("请检查你的用户名和密码是否正确",false);
}
finally
{
Myconn.Close();
}
我在点确定修改的时候,就会跳到catch那里去了.如果我update这样修改的话.
又可以修改密码  Sql="Update tbl_admin set password='"+userpass+"'";,可以这样的话我数据库的密码全都修改了.各位大侠帮帮忙呀.

解决方案 »

  1.   

    Sql="Update tbl_admin set username='"+this.txt_admin.Text.Trim()+"' and password='"+userpass+"' where username='"+this.txt_admin.Text.Trim()+"'";
      

  2.   

    Sql="Update tbl_admin set username='"+this.txt_admin.Text.Trim()+"' and password='"+userpass+"' where username='"+this.txt_admin.Text.Trim()+"'";
    这个一样不行,
    开头那里写错了.少一个逗号
    Sql="Update tbl_admin set username='"+this.txt_admin.Text.Trim()+"' ,password='"+userpass+"' where username='"+this.txt_admin.Text.Trim()+"'";这样也是不行
      

  3.   

    Sql="Update tbl_admin set username='"+this.txt_admin.Text.Trim()+"'password='"+userpass+"' where username="+this.txt_admin.Text.Trim();
    Sql="Update tbl_admin set username='"+this.txt_admin.Text.Trim()+"'password='"+userpass+"' where username='"+this.txt_admin.Text.Trim()+"'";
    username必须加单引号.