2017-10-06 7 views
0

J'ai un autre code si partie codée dans la méthode d'exécution d'un jButton pour vérifier si le U_LEVEL de l'E_ID donné est "Admin" ou "Utilisateur". Ci-dessous est le code.Comment transformer la valeur en true d'une condition if dans java NetBeans?

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); 
     } 
    } 

Dans le code ci-dessus, il y a un else-if. en ce que si une partie,

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

partie

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

partie extraient une vraie valeur, mais

type.equals("Admin") 

partie récupère une valeur fausse, même si la base de données MYSQL "final_post" contient une table appelé USER dans lequel il existe une colonne appelée U_LEVEL sous laquelle j'ai enregistré les valeurs "Admin" et "Utilisateur".

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) 

J'ai besoin de tourner la valeur de

type.equals("Admin") 

dans true.Where dois-je apporter les modifications? Merci d'avance.

+0

quelle est la valeur du type? – XtremeBaumer

+0

type est un String String type = (rs1.getString (3)); –

+0

Je ne suis pas si sûr mais je pense que la valeur à l'intérieur des parenthèses devrait être 2. –

Répondre

0

J'ai trouvé où je devrais modifier. Ici, le type de variable fait référence à la colonne PWD de la table USER. Mais je l'ai comparé avec la chaîne "Admin". C'est pourquoi il avait récupéré une fausse valeur. Une fois que j'ai corrigé l'index de la colonne l'autre si cela a fonctionné correctement. :) Type de chaîne = (rs1.getString (3)); cela devrait avoir String type = (rs1.getString (2)); C'est tout. :)