2017-10-06 6 views
0

내가 가진 else if 부분이 jButton의 action perform 메소드 내에 코딩되어 주어진 E_ID의 U_LEVEL이 "Admin"인지 "User"인지를 확인합니다. 아래 코드가 있습니다.java NetBeans에서 if 조건의 값을 true로 변환하는 방법은 무엇입니까?

if (E_ID.getText().trim().length() == 0 | PWD.getPassword() == null) { 
     JOptionPane.showMessageDialog(null, "Username or Password cannot be blank", "Error", 0); 
    } else { 
      try { 
      ResultSet rs = new DBG1().getData("select * from USER where E_ID = '" +E_ID.getText() + "'"); 
      Vector v = new Vector(); 

      if (rs.next()) { 
       v.add(rs.getString(1)); 
      } 
      if (v.isEmpty()) { 

       JOptionPane.showMessageDialog(null, "Invalid Username or Password", "Error", 0); 
       E_ID.setText(""); 
       PWD.setText(""); 
       E_ID.grabFocus(); 

      } else { 
       ResultSet rs1 = new DBG1().getData("select * from USER where E_ID ='" + E_ID.getText() + "'"); 
       while (rs1.next()) { 
        String type = (rs1.getString(2));       

        if (E_ID.getText().trim().equalsIgnoreCase(rs1.getString("E_ID")) && PWD.getText().equals(rs1.getString("PWD"))&& type.equals("Admin")) {// 
         // this.dispose(); 
         new Home_Page(E_ID.getText()).setVisible(true); 

        } else if (E_ID.getText().trim().equalsIgnoreCase(rs1.getString("E_ID")) && PWD.getText().equals(rs1.getString("PWD")) && type.equals("User")) { 
         this.dispose(); 
         new Home_Page(E_ID.getText()).setVisible(true); 

        } 
        else { 

         JOptionPane.showMessageDialog(null, "Invalid Username or Password", "Error", 0); 
         E_ID.setText(""); 
         PWD.setText(""); 
         E_ID.grabFocus(); 
        } 
       } 
       this.dispose(); 
       } 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
    } 

위의 코드에는 else-if가 있습니다. 이 경우 부분적으로

E_ID.getText().trim().equalsIgnoreCase(rs1.getString("E_ID")) 

부분

PWD.getText().equals(rs1.getString("PWD")) 

부분은 진정한 가치 만 검색

type.equals("Admin") 

부분은 MySQL 데이터베이스 "final_post는"테이블을 포함하더라도 거짓 값을 검색 "Admin"과 "User"값을 저장 한 U_LEVEL이라는 열이있는 USER라는 사용자가 있습니다.

mysql> select * from USER; 
+-------+-------+-----+------+ 
| E_ID | type | PWD | CPWD | 
+-------+-------+-----+------+ 
| E/14 | Admin | qwe | qwe | 
| SEC/1 | User | qw | qw | 
+-------+-------+-----+------+ 
2 rows in set (0.04 sec) 

은 내가 개정을해야 true.Where에

type.equals("Admin") 

의 값을 설정해야합니까? 사전에 감사합니다.

+0

유형의 값은 무엇입니까? – XtremeBaumer

+0

유형은 String String type = (rs1.getString (3)); –

+0

확실하지는 않지만 대괄호 안의 값은 2 여야한다고 생각합니다. –

답변

0

내가 어디에서 수정해야하는지 찾았습니다. 여기서 변수 유형은 테이블 USER의 열 PWD를 나타냅니다. 그러나 "Admin"문자열과 비교했습니다. 그것이 잘못된 값을 검색 한 이유입니다. 일단 올바르게 작동하면 열 색인을 수정했습니다. :) 문자열 유형 = (rs1.getString (3)); 이 문자열 형식이 있어야합니다 = (rs1.getString (2)); 그게 전부입니다. :)