string Connstr;
string upConn;
string OldPassword=OldPsw.Text;
string NewPassword=NewPsw.Text;

if(OldPsw.Text=="")Label2.Text="请输入原始密码";
else if(NewPsw.Text=="")Label3.Text="请输入新密码";
else if(NewPsw.Text==ReNewPsw.Text)
 {
 SqlConnection myconnection=new SqlConnection(ConfigurationSettings.AppSettings["MM_CONNECTION_STRING_uni"]);
     myconnection.Open();
 Connstr="SELECT usrName,LoginId,Password FROM [BaseInfo] Where usrName='"+Session["strUsername"]+"'";
     SqlCommand mycommand=new SqlCommand(Connstr,myconnection);
     SqlDataReader validate=mycommand.ExecuteReader();
     if(validate.Read()&&OldPassword==validate.GetString(2))
  {
  validate.Close();
  SqlConnection upconnection = new SqlConnection(ConfigurationSettings.AppSettings["MM_CONNECTION_STRING_uni"]);
  upconnection.Open();
  upConn ="UPDATE [BaseInfo] SET Password='"+NewPsw.Text+"'";
  SqlCommand upcommand = new SqlCommand(upConn,upconnection);
  upcommand.ExecuteNonQuery();
  upconnection.Close();
  Label2.Text="修改成功!";
  }
  else Label4.Text="原始密码错误,请重新输入!";  
validate.Close();
myconnection.Close();
}
else Label4.Text="新密码输入不一致,请重新输入!";

解决方案 »

  1.   

    呵呵,没用vs2003.net,用的是dreamweaver2004做的,没法下断点啊
      

  2.   

    if(validate.Read()&&OldPassword==validate.GetString(2))为什么这句话在执行的时候总为假值,而导致这段代码始终不能更新成功,谢谢各位啦
      

  3.   

    Connstr="SELECT usrName,LoginId,Password FROM [BaseInfo] Where usrName='"+Session["strUsername"]+"'";
    改为Connstr="SELECT usrName,LoginId,Password FROM [BaseInfo] Where usrName=\'"+Session["strUsername"]+"\'";
    C#中单"'"为转义字符....应写为"\'".
      

  4.   

    不行啊,我能从里面读出值来,但是呢,OldPassword==validate.GetString(2)值总判断假,奇怪
      

  5.   

    OldPassword==validate.GetString(2)
    换成
    OldPassword.Equals(validate.GetString(2) ) 看看