Probleme avec if et chaine de caractere... et JDBC
Probleme avec if et chaine de caractere... et JDBC - Java - Programmation
MarshPosté le 04-05-2004 à 21:32:30
Le bout de code qui pose probleme...
String PRE_STMT = "SELECT cat FROM UserDB WHERE nom = '"+u_nom+"' AND mdp = '"+u_pwd+"'"; PreparedStatement stmt = con.prepareStatement(PRE_STMT); ResultSet r = stmt.executeQuery();
// gestin des droits // bosser sur panel et faire du setVisible if (r.next()) {
System.out.println("Vous etes un utilisateur de categorie : "+r.getString(1));
// ajouter les boutons correspondant a la cat // supprimer ceux en trop...
if (r.getString(1).equals("client" )) { System.out.println("un" ); switch (u.getRight()) { case 0 : f.displayButton("client" ); break; case 3 : f.removeButton("admin" ); case 2 : f.removeButton("agent" ); } u.setRight(1); } else if (r.getString(1).equals("agent" )) { System.out.println("deux" ); switch (u.getRight()) { case 3 : f.removeButton("admin" ); break; case 0 : System.out.println("affi client" ); f.displayButton("client" ); case 1 : System.out.println("affi agent" ); f.displayButton("agent" ); break; } u.setRight(2); } else if (r.getString(1).equals("admin" )) { System.out.println("trois" ); switch (u.getRight()) { case 0 : f.displayButton("client" ); case 1 : f.displayButton("agent" ); case 2 : f.displayButton("admin" ); break; } u.setRight(3); } else {System.out.println("quatre" );} r.close();
}
j'ai cree une table UserDB [fixed]CREATE TABLE UserDB (nom char(12), mdp char(8), cat char(6) CHECK (cat='client' OR cat='agent' OR cat='admin'), PRIMARY KEY(nom, mdp));[\fixed]
j'ai une petit IG avec des champs ou je rentre nom et mot de passe... j'affiche la cat renvoyee, elle est correcte...
mais les "if (r.getString(1).equals("client" ))" font n'importe quoi... seul le client est bien reconnu... quand je me log en admin ou en agent, l'appli renvoie "quatre"
Marsh Posté le 04-05-2004 à 21:32:30
Le bout de code qui pose probleme...
String PRE_STMT = "SELECT cat FROM UserDB WHERE nom = '"+u_nom+"' AND mdp = '"+u_pwd+"'";
PreparedStatement stmt = con.prepareStatement(PRE_STMT);
ResultSet r = stmt.executeQuery();
// gestin des droits
// bosser sur panel et faire du setVisible
if (r.next()) {
System.out.println("Vous etes un utilisateur de categorie : "+r.getString(1));
// ajouter les boutons correspondant a la cat
// supprimer ceux en trop...
if (r.getString(1).equals("client" )) {
System.out.println("un" );
switch (u.getRight()) {
case 0 : f.displayButton("client" ); break;
case 3 : f.removeButton("admin" );
case 2 : f.removeButton("agent" );
}
u.setRight(1);
}
else if (r.getString(1).equals("agent" )) {
System.out.println("deux" );
switch (u.getRight()) {
case 3 : f.removeButton("admin" ); break;
case 0 : System.out.println("affi client" ); f.displayButton("client" );
case 1 : System.out.println("affi agent" ); f.displayButton("agent" ); break;
}
u.setRight(2);
}
else if (r.getString(1).equals("admin" )) {
System.out.println("trois" );
switch (u.getRight()) {
case 0 : f.displayButton("client" );
case 1 : f.displayButton("agent" );
case 2 : f.displayButton("admin" ); break;
}
u.setRight(3);
}
else {System.out.println("quatre" );}
r.close();
}
j'ai cree une table UserDB
[fixed]CREATE TABLE UserDB (nom char(12),
mdp char(8),
cat char(6) CHECK (cat='client' OR cat='agent' OR cat='admin'),
PRIMARY KEY(nom, mdp));[\fixed]
j'ai une petit IG avec des champs ou je rentre nom et mot de passe...
j'affiche la cat renvoyee, elle est correcte...
mais les "if (r.getString(1).equals("client" ))" font n'importe quoi...
seul le client est bien reconnu...
quand je me log en admin ou en agent, l'appli renvoie "quatre"
une idee?