2017-02-13 1 views
-3

안녕하세요. 자바 코드에 문제가 있습니다. 내 IDFiELD에 텍스트를 입력 한 다음 "Enter"를 누르면 "ID가 인식되지 않습니다. 다시 시도하십시오 ..."라는 메시지가 나오지만 테이블에 값이 표시됩니다. 어떻게 문제를 해결할 수 있을까요? 나는 당신이 날 도울 수 있기를 바랍니다이 코드는 어떻게 얻을 수 있습니까?

IDField.addKeyListener(new KeyAdapter() { 
     public void keyPressed(KeyEvent evnt) { 
      if (evnt.getKeyCode() == KeyEvent.VK_ENTER) { 
       try { 
        String query = "select * from employee where IDNo = ?"; 
        PreparedStatement pst = connection.prepareStatement(query); 
        pst.setString(1, IDField.getText()); 
        ResultSet rs = pst.executeQuery(); 
        table.setModel(DbUtils.resultSetToTableModel(rs)); 

        int count = 0; 
        while (rs.next()) { 
         count += 1; 
        } 
        if (count == 1) { 
         JOptionPane.showMessageDialog(null, "ID Verified!"); 

         IDField.setText(null); 
        } else { 
         JOptionPane.showMessageDialog(null, "ID was'nt recognize, Try again..."); 
        } 
        rs.close(); 
        pst.close(); 
       } catch (Exception e) { 
        JOptionPane.showMessageDialog(null, e); 
       } 
      } 

     } 
    }); 

:

그래서 여기에 자바 이클립스 내 코드입니다. 감사.

+1

? 동일한 'IDNo'를 가진 직원이 두 명 이상일 수 있습니까? –

+0

? 그 코드 중 처음에는 "table.setModel (DbUtils.resultSetToTableModel (rs));"을 추가하지 않았습니다. 제대로 작동합니다. 그리고 그 표를 넣으면 내 문제가 나타납니다. –

답변

2

귀하의 방법 table.setModel(DbUtils.resultSetToTableModel(rs));은 ResultSet을 이미 사용하므로 수신 한 결과의 수를 세는 데 다시 사용할 수 없습니다.

할 수 있습니다 : 행이

  • 가있는 경우

    • 실행 두 번 (코드 간단하지만, 적어도 깨끗하고 효율적) 쿼리
    • 쿼리 테이블 모델은 쿼리의 결과를 추출 확인하려면 데이터 구조로 변환하고 테이블 모델로 변환하고 결과가 있는지를 확인하기 위해 사용합니다.
  • 관련 문제