Base de donnée et java [Résolu/Fermé]

Signaler
Messages postés
8
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
25 septembre 2011
-
Messages postés
8
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
25 septembre 2011
-
Bonjour,
dans mon projet informatique, des personnes s'inscrivent sur une interface: ils rentrent des données et je leur associe un numéro (qui sera la clef dans la bdd). Seulement, pour que le prochain inscrit soit inscrit sans erreur, je dois récuperer l'identifiant du précédent et lui ajouter 1: voici ma méthode:

public static int trouvenum() {

try {
Connection con = Connexion.defaultCon;
Statement stab = con.createStatement();

String tn = "select MAX(numero) from PHARMACIE.vendD";
ResultSet toutesRS = stab.executeQuery(tn);
int res = toutesRS.getInt("numero");

return res;
} catch (Exception ex) {
throw new Error(ex);
}
}
on me retourne une erreur: unknown column numero, alors que cette colonne existe!!
je ne sais pas quoi faire, y a t il une erreur? je suis débutante en java, je ne maitrise pas du tout le langage.

Je dois aussi récuperer les inscrits: leur noms, pour en faire une liste dans une combobox (pour s'identifier par la suite). Je ne sais pas comment faire pour les recuperer? quel type de méthode?

merci de bien vouloir m aider,

6 réponses

Messages postés
191
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
21 juillet 2010
34
essaie int res = toutesRS.getInt(1);
en fait le nom de la colonne en output n'est pas numero mais quelque chose comme max_numero
en tout cas les numéros c'est plus simple
Messages postés
8
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
25 septembre 2011

Merci, ca a résolu le probleme de "unknown column" mais la j ai un autre soucis, netbeans me répond: Invalid operation to read at current cursor position.
que dois-je faire?
merci
Messages postés
191
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
21 juillet 2010
34
wé c'est vrai bein voilà
tu fais :


if(toutesRS )
return toutesRS.getInt("numero");
return res;

en fait lorsque tu executes une requete SQL le curseur est positionné toujours sur la ligne avant première, donc tu testes s'il y'a une ligne retournée ou non.
Messages postés
8
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
25 septembre 2011

j ai pas compris ... :s
quand je fais ce que tu m as dit, net beans repond que c est pas possible de faire if (toutesRS) parce que c est un int et pas un boolean, et si c est la position du curseur qui pose probleme, n y a t il pas un moyen de passer a la position suivante (sans faire .next() , j ai essayé avec ca mais ca ne marche que pour les booleans)
merci,
Messages postés
191
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
21 juillet 2010
34
je m'excuse !
if(toutesRS.next() )
Sorry!
Messages postés
8
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
25 septembre 2011

merci beaucoup!!! c est bon ca marche parfaitement, je poste le code pour ceux qui en auraient peut etre besoin:
public static int trouvenum() {

try {
Connection con = Connexion.defaultCon;
Statement stab = con.createStatement();

String tn = "select MAX(numero) from PHARMACIE.vendD";
ResultSet toutesRS = stab.executeQuery(tn);
if (toutesRS.next()) {
return toutesRS.getInt(1);
}
int res = toutesRS.getInt(1);
return res;
} catch (Exception ex) {
throw new Error(ex);
}
}