2014-06-10 120 views
0

我已經創建了更改密碼的代碼,但它不起作用。這段代碼意味着使用Java表中的Java來更改用戶密碼。通過JDBC更改用戶密碼

private void btn_ModifierUserActionPerformed(java.awt.event.ActionEvent evt) {  
    try { 
     String uname = txt_userName.getText(); 
     String upassword = txt_userPassword.getText(); 
     String newassword = txt_usernewrPassword.getText(); 
     String conNewpassword = txt_userconfirmerPassword.getText(); 
     String grade = jCom_userGrade.getSelectedItem().toString(); 
     byte[] img=null;` 

     String sql = "SELECT * FROM users where ID='"+txt_userID.getText()+"'"; 
     pst=(PreparedStatement)conn.prepareStatement(sql); 
     rs=pst.executeQuery(); 
     String passwd = rs.getString("password"); 
     if(rs.next()){ 
     if(!uname.equals("")){ 
      if (upassword.equals(passwd)) { 
      //JOptionPane.showMessageDialog(null, usrname); 
       if (newassword.equals(conNewpassword)) { 
        if(!newassword.equals("") && !conNewpassword.equals("")){ 
         String sqlup="UPDATE users SET userName='"+uname+"',password='"+newassword+"',Grade='"+grade+"',image='"+img+"' where ID'"+txt_userID.getText()+"'"; 
         pst=(PreparedStatement) conn.prepareStatement(sqlup); 
         pst.execute(); 
         JOptionPane.showMessageDialog(null, "mise à jour réussie"); 
        }else{ 
        JOptionPane.showMessageDialog(null, "S'IL VOUS PLAÎT ENTRER LES INFORMATIONS"); 
        } 

       } else { 
        JOptionPane.showMessageDialog(null, "S'IL VOUS PLAÎT CONFIRMER MOT DE PASSE"); 
      } 
     }else{ 
      JOptionPane.showMessageDialog(null, "S'IL VOUS PLAÎT ENTRER LE MOT DE PASSE"); 
      } 
     }else{ 
      JOptionPane.showMessageDialog(null, "S'IL VOUS PLAÎT ENTRER LE NOM D'UTILISATEUR"); 
      } 

     } 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
    } 

}           

+0

請顯示ENTIRE異常堆棧。你的消息毫無幫助。 – OldProgrammer

+0

你沒有關閉你的結果集。 – ra2085

+2

你不需要SELECT。只需編寫UPDATE語句以包含對舊密碼值的測試,並檢查是否有更新的行。當然,你應該哈希密碼。 – EJP

回答

2

看一看here

在此之前移動光標(rs.next):

String passwd = rs.getString("password"); 

並請閉上你的結果集!

+0

感謝您的答覆+1 –