cs_Alizzy
Messages postés17Date d'inscriptionlundi 26 avril 2010StatutMembreDernière intervention28 août 2012
-
31 mai 2010 à 04:21
cs_Alizzy
Messages postés17Date d'inscriptionlundi 26 avril 2010StatutMembreDernière intervention28 août 2012
-
31 mai 2010 à 22:22
Salut à tous,
je suis sur un projet dans lequel je code un bouton "connexion" d'un formulaire pour l'authentification des utilisateurs.j'ai fait la connexion avec la base de données mais je comprends pas pourquoi mon code ne s'exécute pas normalement c'est-à-dire que pour un mot de passe et un login corrects ou incorrects, il affiche un message d'erreur de saisie des informations qui n'est valable que pour un mot de passe et un login incorrects. je suis pourtant sûre que mon code est bon car j'ai fouillé déjà dans les forums mais je comprends pas où se trouve le problème. S'il vous plaît, veuillez jeter un coup d'oeil dans ce code et merci bien:
private void jBConexionActionPerformed(java.awt.event.ActionEvent evt) {
//chargement du driver
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch(Exception e){System.out.println("Erreur driver: "+e.getMessage());}
//Connexion à la base
try {
con=DriverManager.getConnection("jdbc:mysql://localhost/licence","root","");
}
catch (SQLException e) {
System.out.println("Impossible de se connecter à la BD");}
try {
st=con.createStatement();
}
catch(SQLException e)
{
System.out.println("Impossible de créer de Statement");
}
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 31 mai 2010 à 07:46
Salut,
je suis pourtant sûre que mon code est bon
Si ton code ne fait pas ce qu'il est censé faire, c'est qu'il n'est pas bon, que tu en sois sûre ou non...
Plusieurs remarques :
1/ Pourquoi tu récupère TOUT les champs de tout les enregistrements de ta table si ce n'est que pour tester 2 champs pour 1 enregistrement ? C'est pas du tout optimisé ta requête. Imagine que tu ai 100 champs avec 1 million d'enregistrements... Tu devra lire toutes ces données juste pour tester si l'utilisateur toto est bien dans tout cà...
N'oublie pas de nommer les champs dont tu as besoin dans tes requêtes (oublies le SELECT *), et utilises la clause WHERE pour ne renvoyer que le strict minimum :
rs=st.executeQuery("select Login, [Mot de pase] from secretariat WHERE Login = '" + nom + "'");
2/ Ce n'est pas comme cà qu'on compare des chaines de caractères en java, il vient de là ton problème :
Remplace ton if(nom!=(nm)&& (mot!=(m))) par : if(!nom.equals(nm) && !mot.equals(m)))
Le pire, c'est que tu l'avais déjà fait pour comparer avec une chaîne vide !
______________________________________
AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
cs_Alizzy
Messages postés17Date d'inscriptionlundi 26 avril 2010StatutMembreDernière intervention28 août 2012 31 mai 2010 à 22:22
Bonjour Darksidious,
je te remercie pour les informations fournies et je prends note des remarques.
En effet, j'ai testé le nouveau code mais toujours rien. j'ai donc utilisé une autre base de données que j'avais dejà créer et c'est passé.
J'en conclus qu'il y a une erreur avec la base à utiliser. je vais la recréer et voir ce que ça donne.
Merci de m'avoir répondu. Bonne fin de semaine à vous.