La condition where dans la requete sql select n'accepte pas le slash!!!

Signaler
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
-
 Utilisateur anonyme -
salut
j'arrive pas a sélectionner la ligne de table où la colonne est une varchar qui contient des slash ex: 22/10/10
la colonne est bien déclaré comme varchar dans la base de données (NumPermis) et String (n)

public void Rechercher() {
System.out.println("PROCEDURE DE RECHERCHE");
Connection cnx=null;
Statement st=null;
ResultSet resultset;

try {
cnx = DriverManager.getConnection("jdbc:mysql://localhost/permis1?user=root&password=");
Class.forName("com.mysql.jdbc.Driver").newInstance();
st=cnx.createStatement();
n=tnump.getText();
String rqIns="SELECT * FROM fiche_permis WHERE NumPermis = " +n;
resultset= st.executeQuery(rqIns);                   
if(resultset.first())
 {
JOptionPane.showMessageDialog(null,"FICHE TROUVEE !","voir",JOptionPane.OK_CANCEL_OPTION);
trouver j=new trouver(n);
cnx.close();
}
 else {
JOptionPane.showMessageDialog(null,"FICHE NON TROUVEE !","MESSAGE D\'ERREUR",JOptionPane.ERROR_MESSAGE);
cnx.close();
   }
}
catch(Exception x) {
JOptionPane.showMessageDialog(null,"INFORMATIONS INCORRECTES","MESSAGE D\'ERREUR",JOptionPane.ERROR_MESSAGE);
System.out.println(x);x.printStackTrace();}

}//fin recherche

7 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Bonjour,

Je vais commencer par déplacer le message vers le forum java
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Ta requête est incorrecte, il n'y a aucun rapport avec les / si NumPermis est bien un VARCHAR alors la requete correcte est la suivante :

String rqIns="SELECT * FROM fiche_permis WHERE NumPermis='" + n +"';";


Les varchar doivent être entours par des ''

Attention aux injections SQL et respectes les normes de codage java, tu seras plus facile à lire.

Au fait, si tu veux un champs pour la data, passe par le type Date si possible qui est plus approprié que le type varchar.


--
Pylouq
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
merciiii Julien39 le probleme est reglééé

String rqIns="SELECT * FROM fiche_permis WHERE NumPermis='" + n +"';";


Les varchar doivent être entours par des ''

Attention aux injections SQL et respectes les normes de codage java, tu seras plus facile à lire.



j'ai une autre question, je peux faire la recherche dans une table sur plusieurs colonnes (NumPermis, Nom,Prenom et DateNaiss):

String rqIns="SELECT * FROM fiche_permis WHERE NumPermis='" + n +"'and Nom='"+m+"' and Prenom= '"+o+"'and '"+p+"';";


??????
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
360
Peux tu me décrire ton erreur ? Je ne peux pas tester ta requête, il faut donc me décrire ce qui ne va pas.

A priori tout à l'air normal sauf qu'il faut que tu ajoutes des espaces entre ' et and 'and Nom= -> ' and Nom= fais comme ça pour tout et ça devrait rouler
Messages postés
34
Date d'inscription
samedi 24 octobre 2009
Statut
Membre
Dernière intervention
22 mars 2012
1
ya pas d'erreurs merci
ca marche correctement

Mets ton sujet en résolu dans ce cas.


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça a instruit des gens.)