我只要输入正确的密码在旧密码处,不输入新密码就会显示“修改密码成功”
在新密码那输入密码就显示“两次密码不同”
高手指点下哪出错了,感激不尽
我的界面是:用户名:
            输入旧密码:
            输入新密码:
            确认新密码:
private void buttonActionPerformed(ActionEvent e){
String pass = null;
String userid = null;
           pass = String.valueOf(passwordField.getPassword());
           userid = String.valueOf(comboBox.getSelectedItem());
           String sqlSelect = null;
           sqlSelect = "select userid,pass from 用户表 where pass ='"+pass+"' and userid='"+userid+"'";
           java.util.Vector vdata = null;
           apphm.util.RetrieveObject retrieve = new apphm.util.RetrieveObject();
           vdata = retrieve.getObjectRow(sqlSelect);
           if(vdata.get(0)==null)
           {
            new JOptionPane().showMessageDialog(null,"旧密码不正确!");
           }
           else if((String.valueOf(passwordField_1.getPassword())).equals(String.valueOf(passwordField_2.getPassword()))){
            String sqlInsert = "Update 用户表(pass) values('"
                  + passwordField_2.getPassword()+"')";
            try{
                     con = CommonaJdbc.conection;
                     pstmt = con.prepareStatement(sqlInsert);
                     pstmt.execute();
                 }catch(java.sql.SQLException sql){
                     sql.printStackTrace();
                 }       
            new JOptionPane().showMessageDialog(null,"密码更改成功!");
           }
           
           else{
new JOptionPane().showMessageDialog(null,"两次密码不同!");

}

           }

解决方案 »

  1.   

    你第二个SQL语句错了。
    应该是:String sqlInsert = "update 用户表 set pass='" 
                    + passwordField_2.getPassword()+"'"; 
    [/
      

  2.   

    你第二个SQL语句错了。 
    应该是:
    String sqlInsert = "update 用户表 set pass='" 
                    + passwordField_2.getPassword()+"'"; 
      

  3.   

    我觉得你应该先描述一下错误信息,不然很难知道,你错在哪儿。
    如果你觉得是逻辑问题,DeBug一下应该就清楚了。还有一点疑问:
    pass = String.valueOf(passwordField.getPassword()); 
    passwordField应该是JTextField吧,取值的时候怎么不用getText,感觉你这样取值怪怪的。-----
    Quietly through ...
      

  4.   

    把new JOptionPane().showMessageDialog(null,"密码更改成功!"); 放到try{}里面
      

  5.   

    执行sql语句的代码和获得结果集中的数据的时候要用try{}监听起来private void buttonActionPerformed(ActionEvent e){ 
    String pass = null; 
    String userid = null; 
              pass = String.valueOf(passwordField.getPassword()); 
              userid = String.valueOf(comboBox.getSelectedItem()); 
              String sqlSelect = null; 
              sqlSelect = "select userid,pass from 用户表 where pass ='"+pass+"' and userid='"+userid+"'"; 
              java.util.Vector vdata = null; 
              apphm.util.RetrieveObject retrieve = new apphm.util.RetrieveObject(); 
                  try{
                     vdata = retrieve.getObjectRow(sqlSelect); 
              if(vdata.get(0)==null) 
              { 
              new JOptionPane().showMessageDialog(null,"旧密码不正确!"); 
              } 
              else if((String.valueOf(passwordField_1.getPassword())).equals(String.valueOf(passwordField_2.getPassword()))){ 
              String sqlInsert = "Update 用户表(pass) values('" 
                    + passwordField_2.getPassword()+"')"; 
              try{ 
                        con = CommonaJdbc.conection; 
                        pstmt = con.prepareStatement(sqlInsert); 
                        pstmt.execute(); 
                    }catch(java.sql.SQLException sql){ 
                        sql.printStackTrace(); 
                    }      
              new JOptionPane().showMessageDialog(null,"密码更改成功!"); 
              } 
              
              else{ 
    new JOptionPane().showMessageDialog(null,"两次密码不同!"); } 
    catch(){}
                   }
              }