2012-12-05 2 views
0

이들은 .entity 디렉토리 내의 코드입니다.Java 스윙에서 열을 찾을 수 없음 오류 메시지

public boolean createUser() { 
    boolean success = false; 
    DBController db = new DBController(); 
    db.setUp("IT Innovation Project"); 
    String sql = "INSERT INTO forumUsers(users_userName,users_password,users_NRIC)"; 
    sql += "VALUES ('" + userName + "','" + pwd + "','" + nric + "')"; 
    System.out.println(sql); 
    if (db.updateRequest(sql) == 1) 
     success = true; 
    db.terminate(); 
    return success; 
} 

    public boolean retrieveUser() { 
    boolean success = false; 
    ResultSet rs = null; 
    DBController db = new DBController(); 
    db.setUp("IT Innovation Project"); 
    String dbQuery = "SELECT * FROM forumUsers WHERE users_userName = '"; 
    dbQuery += userName + "'"; 
    rs = db.readRequest(dbQuery); 
    try { 
     if (rs.next()) { 
      pwd = rs.getString("password"); 
      success = true; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    db.terminate(); 
    return success; 
} 

이들은 사용자 인터페이스 클래스의 코드입니다.

if (userName.equals("")||pwd.equals("")||nric.equals("")) 
     JOptionPane.showMessageDialog(null,"Please enter all text field"); 
    else{ 
     eForumUser user = new eForumUser (userName,pwd,nric); 
     if (user.retrieveUser()) 
       JOptionPane.showMessageDialog(null,"User already exists! Cannot create."); 
     else{ 
      if (user.createUser()==true); 
      JOptionPane.showMessageDialog(null,"User record created successfull!"); 
     } 

내 데이터베이스 테이블에 users_userName, users_password, users_NRIC, users_securityQuestion, users_answer 열이 있습니다.

데이터베이스에 데이터를 만들 수 있습니다. 그러나 retrieveUser 메서드를 사용하여 사용자 이름 존재 여부를 확인하려고하면 콘솔에 "열을 찾을 수 없습니다"라는 오류 메시지가 표시됩니다. 그래서이 문제를 해결하기 위해 내가해야 할 일은 무엇입니까? 내 retrieveUser 메소드에 문제가 있습니까?

나는 내 retriveUser 방법을 편집 해 :

public boolean retrieveUser() { 
    boolean success = false; 
    ResultSet rs = null; 
    DBController db = new DBController(); 
    db.setUp("IT Innovation Project"); 
    String dbQuery = "SELECT * FROM forumUsers WHERE users_NRIC AND users_securityQuestion AND users_answer = '"; 
    dbQuery += userName + securityQuestion + answer + "'"; 
    rs = db.readRequest(dbQuery); 
    try { 
     if (rs.next()) { 
      pwd = rs.getString("users_password"); 
      success = true; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    db.terminate(); 
    return success; 
} 

그리고 NRIC, 보안 질문과 답을 입력하여 암호를 검색하려고합니다. 다음은 사용자 인터페이스 코드입니다.

public void submitForgotPwd(ActionEvent e){ 
    String nric = jTextField.getText(); 
    Object securityQuestion = jComboBox.getSelectedItem(); 
    String answer = jTextField1.getText(); 
    if (nric.equals("")||securityQuestion.equals("")||answer.equals("")){ 
     JOptionPane.showMessageDialog(null, "Please enter nric,security question and answer."); 
    }else{ 
     eForumUser user = new eForumUser(nric,securityQuestion,answer); 
     if (user.retrieveUser()==true){ 
     jTextField2.setText(user.getPwd()); 
     }else{ 
      JOptionPane.showMessageDialog(null,"Nric do not exist or wrong security question and answer"); 
     } 
    } 
} 

그러나 검색 기능이 작동하지 않습니다. 누군가가 도와 줄 수 있습니까?

+0

로 변경 users_password입니까? 편집 한 후 retrieveUser를 의미합니다. 작동하지 않습니다. – GabrielHeng

답변

1

나는 당신의 문제에 대해 생각

pwd = rs.getString("password"); 

열 이름이

그래서 누군가가 두 번째 부분으로 도와 줄 수

pwd = rs.getString("users_password"); 
+0

예, 작동합니다. 고마워. – GabrielHeng

관련 문제