2017-10-06 146 views
0

我有一個如果部分編碼內部的動作執行方法的一個jButton來檢查給定的E_ID的U_LEVEL是「管理員」還是「用戶」.Below是代碼。如何在java NetBeans中將值轉換爲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」包含一個表假值稱爲USER,其中有一個名爲U_LEVEL的列,我在其中保存了值「Admin」和「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) 

我需要打開的

type.equals("Admin") 

價值爲true.Where我應該做的修改?在此先感謝。

+0

什麼是類型的價值? – XtremeBaumer

+0

類型是一個字符串字符串類型=(rs1.getString(3)); –

+0

我不太確定,但我認爲括號內的值應該是2. –

回答

0

我發現我應該修改的地方。 在這裏,變量類型是指表USER的列PWD。 但我將它與字符串「Admin」進行了比較。 這就是爲什麼它已經檢索到錯誤的值。 一旦我更正了列索引,其他工作正常。 :) String type =(rs1.getString(3));這應該有String類型=(rs1.getString(2)); 就是這樣。 :)

相關問題