merci ça a marché
un autre souci toujours lié à la liste et au rafraichissement
j'ai mi un bouton de rafraichissement
si j'appuie sur le bouton, je rerempli la liste
j'ai ajouté une donné
j'ai rafraichi, ça apparait
maintenant, je sélection dans la liste un élément (pour le modifer ou le supprimer)
et je reclique sur le bouton de rafraichissement
il effectu le rafraichissement
et au retour de la variable contenuliste, il me mes ce message d'erreur dans le terminal :
"org.postgresql.util.PSQLException : le ResultSet n'est pas positionné correctement, vous pouvez peut-être appeler next()."
puis si je reclique à nouveau sur rafraichissement, le message n'apparait plus
et si je resselectionne quelque chose et que je rafraichi à nouveau, il rafraichi et me remet un message d'erreur
je me rend compte du moment ou l'erreur apparait en posant des balise au niveau des code de l'affichage de la liste et je suis l'avancé avec le debogueur :
le message est expédié, passe dans tout le cod, ressort correctement, revien à l'expéditeur et là seulement il y a un message d'erreur.
et je ne voie vraiment pas d'ou ça peut venir
voici les différente parti du code :
.l'affichage de la liste :
..appel initiale (FenetreBD) :
private JList liste = new JList(bd_dialogue.afficher());
..appel de rafraichissement (FenetreBD) :
liste.setListData(bd_dialogue.afficher());
..traitement des requêtes d'appel (DialogueBD) :
1 2 3 4 5 6 7 8 9 10 11
| Vector afficher (){
java.util.Vector<String> contenuliste = new java.util.Vector<String>();
try {
ResultSet réponse_aff = requete.executeQuery("select refpro from produit");
while (réponse_aff.next()) {
contenuliste.add(réponse_aff.getString("refpro"));
}
} catch(Exception e){System.out.println(e);}
System.out.println(contenuliste);
return contenuliste;
} |
.la sélection dans la liste :
..appel de la sélection (FenetreBD) :
1 2 3 4 5 6 7 8 9 10 11 12
| liste.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
refpro = (String)liste.getSelectedValue();
Object[] tableau = bd_dialogue.select(refpro);
npro = (String)tableau[0];
case_col2.setText((String)tableau[1]);
case_col3.setText((String)tableau[2]);
case_col4.setText((String)tableau[3]);
case_col5.setText((String)tableau[4]);
}
}); |
..traitement de la requête d'appel (DialogueBD) :
1 2 3 4 5 6 7 8 9 10 11 12 13
| Object[] select (String refpro){
Object[] tableau = new Object[5];
try {
ResultSet réponse = requete.executeQuery("select npro, refpro, libelle, prix, qstock from produit where refpro like '" + refpro + "'");
réponse.next();
tableau[0] = réponse.getString("npro");
tableau[1] = réponse.getString("refpro");
tableau[2] = réponse.getString("libelle");
tableau[3] = réponse.getString("prix");
tableau[4] = réponse.getString("qstock");
} catch(Exception e){System.out.println(e);}
return tableau;
} |
on dirait que chaque fois que je passe dans le code "traitement de la requête d'appel (DialogueBD)", il se passe un truc qui crée une erreur pour le rafraichissement
si vous souhaiter l'intégralité du code, n'hésitez pas à demander
en espérant que quelqu'un saura m'aider
bonne soirée
Partager