Bonjour je veux effectuer une requête avec une condition de type like avec une preparedStatement mais il ne me retourne aucun résultat et je n'arrive pas a trouver mon erreur. Voila le code de ma méthode de recherche :
Le code qui appelle cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 static Vector rechDescr(String descr) { Vector vProd = new Vector(); String numProd; String description; double phTva; int i = 0; try { String req = "select * from Produits where descr = ?"; PreparedStatement pst = connect.prepareStatement(req); pst.setString(1, "%"+descr+"%"); ResultSet rs = pst.executeQuery(); while(rs.next()) { System.out.println("Passez ici"); numProd = rs.getString("NUMPROD"); description = rs.getString("DESCR"); phTva = rs.getDouble("PHTVA"); vProd.add(new ProduitDB(numProd,description,phTva)); } pst.close(); } catch(SQLException e) { System.out.println("Erreur requete sql: "+e); } return vProd; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public ProduitDB rechDescr() { ProduitDB prod = null; System.out.println("Entrez la description du produit : "); String descr = Lecture.lireString(); Vector prodRech = ProduitDB.rechDescr(descr); if(prodRech.size() == 0) { System.out.println("Aucun produit ne correspond a cette description"); return null; } else { int i = 0; while(i < prodRech.size()) { prod = (ProduitDB)prodRech.elementAt(i); System.out.println((i+1)+":"); affiche(prod); i++; } boolean erreur; do { erreur = false; System.out.println("Entrez le numero correspondant a votre recherche : "); int num = Lecture.lireInt(); if(num >=1 && num <= prodRech.size()) { prod = (ProduitDB)prodRech.elementAt((num-1)); } else { System.out.println("Entrez un nombre valide ! "); erreur = true; } } while(erreur); } return prod; }
Partager