La requete select avec java

Signaler
Messages postés
71
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013
-
cs_DARKSIDIOUS
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
bonjour;
j'ai un problem avec la requete sql voici le code:
String requete "SELECT * FROM enseignant WHERE mail_ens'"+mail+"' AND pass_ens = '"+motpasse+"'" ;
ResultSet rs =con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(requete);
int n=0;
while(rs.next())
n++
if(n!=0) //l'enregisterement est trouvé
else
// l'enregistrement n'existe pas n'existe pas

je vous explique le problem:
on fait la requete l'mail et le motde passe de l'enseignant pour qu'il arrive a connecté je ne sais pas comment continuer
resultat est dans la variable rs malgré je saisi desenregistrement existe mé toujour mm'affiche (l'enregistrement n'existe pas)
heeeeeeeeeeeeeeelp pleaaaaaaaaaase

14 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
92
Salut,

Si tu nous montrais ton vrai code pour voir ce qui cloche ? Car là il nous manque tout les points virgules, donc dur dur de savoir si ta variable n est bien incrémentée !

Sinon, il existe la fonction getRow pour savoir l'index de ligne, du coup :
rs.last();
n rs.getRow(); // te renvoie la dernière ligne> 0 s'il n'y en a pas, sinon, renvoie le nombre d'enregistrement.

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
58
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
9 janvier 2011

salut
String requete "SELECT * FROM enseignant WHERE mail_ens'"+mail+"' AND pass_ens = '"+motpasse+"'" ; 
ResultSet rs =con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(requete); 
if(rs.next()){
System.out.println("l'enregisterement est trouvé");
}else{
System.out.println("l'enregistrement n'existe pas n'existe pas");
}
rs.close();
Messages postés
71
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013

j'ai essyeé avec mais ça n'a pa marché
(rs.last();
n = rs.getRow();

il me renvoi la valeur dans n egale a zero(0)
malgré quil existe dans la table enseignant!!!!
ça se peu que le problem est dans la valeur du champ pass_ens(c 'est du type varchar)
et la valeur saisi j'ai la mie dans un (Jtextpassword);
est ce que ça impose une erreur!!
c_a_d entre les deux chaines (celle qui est dans la base enregistrer deja, et celle que je teste maintenant!!!
merçi d'avoir me repondre
Messages postés
58
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
9 janvier 2011

           try{
String requete "SELECT * FROM enseignant WHERE mail_ens'"+mail+"' AND pass_ens = '"+motpasse+"'" ;
    Connection con=DBConnection.connect();
Statement st=con.createStatement();
 ResultSet rs=st.executeQuery(requete);

if(rs.next()){
System.out.println("l'enregisterement est trouvé");
}else{
System.out.println("l'enregistrement n'existe pas n'existe pas");
}  
        con.close();
        rs.close();
}catch(Exception es){
}

Messages postés
58
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
9 janvier 2011

quelle SGBD vous utiliser
oracle , mySQL ,....?
Messages postés
71
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013

j'utilise mysql
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
92
Salut,

Fait un System.out.println de la requête telle qu'elle est exécutée, et regarde si les valeurs des variables mail et motpasse sont correctes...
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
58
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
9 janvier 2011

oui un System.out.println de la requête avant l'exécution de la requete
System.out.println(requete);
ResultSet rs=st.executeQuery(requete);
...

Messages postés
71
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013

voila ce qu'il m'affiche::


{SELECT * FROM enseignant WHERE
mail_ens ='isam'AND pass_ens = '[C@1b963c4'

la valeur de n =0
l'enregistrement n'existe pas }


donc est ce que le probleme est dans le password????pask le password que je letappe est 'isam'
c la mme valeur stockée dans la table'isam' mais il il na pas trouvé????
Messages postés
58
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
9 janvier 2011

il faut laisser un espace entre ' est AND
2eme le mot de passe que vous taper et elle qu'il s'afiche ou non ..?
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
92
Salut,

Comment tu affecte la valeur à ta valeur motpasse : la valeur affichée ressemble à une adresse mémoire d'un objet !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
1
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

Salut

pouvez vous nous donner la pertie du code ou se situe la fonction Login ?
Messages postés
71
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
27 avril 2013

oui , parceque c'est un mot de passe doit etre invisible!!
a moin qu'il existe une methode qui fait la comparaison entre ses deux valeur parce que comment vous avez dite ils sont comme des adresse mémoir!!!!!
une valeur peuventavoir + qu'un code!!!!!!

j'ai utilisé un jtextpassword pour la saisi du mot de passe
et dans la base (table),il est du type varchar;
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
92
Salut,

Le problème vient de l'attribution de la valeur à la variable : tu lui passe une adresse mémoire et non la valeur saisie dans ton champ texte tout simplement.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement