Prob avec ResultSet en java
Résolu/Fermé
brain2005
Messages postés
31
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
15 février 2009
-
19 août 2008 à 19:28
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 20 août 2008 à 11:29
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 20 août 2008 à 11:29
A voir également:
- Prob avec ResultSet en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
- Java runtime environment - Télécharger - Langages
2 réponses
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
19 août 2008 à 20:21
19 août 2008 à 20:21
Hello again,
1. il faut t'assurer que le resultset est alimenté (tu fais des getXX() sur le ResultSet uniquement si next() retourne true:
Dans un autre ordre d'idées, si le result set est alimenté, il n'est pas normal de ne rien avoir à la position 1; toutefois, une bonne pratique est de ne PAS utiliser les indices mais les noms des colonnes <== comme ça si jamais tu changes l'ordre SQL (genre select autre chose à la place de *, ou bien si ta table est réorganisée et ta première colonne passe en troisième position...) tes getXX() resteront OK. De plus, utiliser un getDouble("ma_colonne") peut afficher plus d'informations que getDouble(1) à partir d'une certaine version d'Oracle (9i).
Ciao
1. il faut t'assurer que le resultset est alimenté (tu fais des getXX() sur le ResultSet uniquement si next() retourne true:
ResultSet rs2 = stmt.executeQuery("SELECT * FROM VWPARAMLOT WHERE LOT = '"+SelectBox+"'"); while(rs2.next()) { // je veux ici recuperer la valeur de la 1ère colonne et c à ce niveau que l'erreur apparait System.out.println(rs2.getDouble(1)); }
Dans un autre ordre d'idées, si le result set est alimenté, il n'est pas normal de ne rien avoir à la position 1; toutefois, une bonne pratique est de ne PAS utiliser les indices mais les noms des colonnes <== comme ça si jamais tu changes l'ordre SQL (genre select autre chose à la place de *, ou bien si ta table est réorganisée et ta première colonne passe en troisième position...) tes getXX() resteront OK. De plus, utiliser un getDouble("ma_colonne") peut afficher plus d'informations que getDouble(1) à partir d'une certaine version d'Oracle (9i).
Ciao
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
20 août 2008 à 10:01
20 août 2008 à 10:01
Ben, c'est simple: next() retourne false car ta clause WHERE n'est pas ce que tu attends, probablement. Pour t'en convaincre, modifie le code comme ceci (ou passe en mode debug pour consulter la valeur du String que tu passes à stmt.executeQuery())
++
String sqlStr = "SELECT * FROM VWPARAMLOT WHERE LOT = '"+SelectBox+"'"; // ici tu auras à la console la commande SQL avec la clause WHERE // probablement c'est la valeur de SelectBox qui n'est pas bonne System.out.println(sqlStr); ResultSet rs2 = stmt.executeQuery(sqlStr); while(rs2.next()) { // je veux ici recuperer la valeur de la 1ère colonne et c à ce niveau que l'erreur apparait System.out.println(rs2.getDouble(1)); }
++
brain2005
Messages postés
31
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
15 février 2009
20 août 2008 à 10:21
20 août 2008 à 10:21
oui c la valeur de SelectBox qui n'est pas bonne
je vous remercie beaucoup sandul
je vous remercie beaucoup sandul
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
>
brain2005
Messages postés
31
Date d'inscription
mercredi 15 août 2007
Statut
Membre
Dernière intervention
15 février 2009
20 août 2008 à 11:29
20 août 2008 à 11:29
Bonjour,
Pour rapport, on n'oublie pas de cocher le status de la discussion en "résolu" (l'option se situe en haut à droite de la discussion) lorsque le problème est résolu. Merci.
Pour rapport, on n'oublie pas de cocher le status de la discussion en "résolu" (l'option se situe en haut à droite de la discussion) lorsque le problème est résolu. Merci.
20 août 2008 à 09:52
le probleme que j'ai 1 seule ligne ds la table VWPARAMLOT et le rs2.next() donne false pk je sais pas
c quoi la solution et merci pour tout sandul