IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

rafraichissement liste et selection liste : probleme resultSet


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut rafraichissement liste et selection liste : probleme resultSet
    bonjour, je crée une liste ou je récupère des donné d'un BD
    si je clique sur la liste, et j'affiche dans les case les informations pour la référence cliqué
    puis je peux modifier, supprimer ou vider les cases pour ajouter une nouvelle ligne
    normalement après chaque modification, ajout, suppression, il rerempli la liste pour voir les modification
    cette ligne de rafraichissement de liste, je la met dans un bouton de rafraichissement séparé qui ne contient que ça

    si j'appuie sur le bouton "rafraichissement", je rerempli la liste
    j'ai ajouté une donné
    j'ai rafraichi, ça apparait

    maintenant, je sélection dans la liste un élément
    et je reclique sur le bouton de rafraichissement
    il effectue 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 débogueur :
    le message est expédié, passe dans tout le code, ressort correctement, revient à l'expéditeur et là seulement il y a un message d'erreur.
    et je ne voie vraiment pas d'où ça peut venir

    voici les différente parti du code :

    .l'affichage de la liste :

    ..appel initiale (FenetreBD) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private JList liste = new JList(bd_dialogue.afficher());
    ..appel de rafraichissement (FenetreBD) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.setListData(bd_dialogue.afficher());
    ..traitement des requêtes d'appel (DialogueBD) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Peut-être qu'en ajoutant un :
    après avoir lu les enregistrements dans afficher () résoudrait le problème.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut trouvé mais je ne sais pas le régler
    alors, j'ai refait un débogueur sur le conseil de mon prof mais en pas à pas

    quand je clique sur rafraichissement ...
    il passe dans la boucle afficher() et c'est tout

    si je sélection un objet dans la liste puis sur rafraichir,
    il passe dans la bouche afficher() puis au retour, affiche la liste
    et ensuite il passe dans la boucle action de la liste
    donc il passe dans la boucle select() et là forcément il y a une erreur

    je pense qu'il prend le remplissage de la liste comme une action du fait que quand je rafraichi, il y a toujours la sélection de fait

    aurait il une fonctionne pour des-sélectionner la liste avant de la reremplir ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    Je n'avais pas vu la méthode select,
    il manque un reponse.beforeFirst () avant de faire le next () pour se positionner en début de sélection.
    Et bien sur un response.close () une fois le travail effectué.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    j'ai essayé ton code sur les 2 parties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Vector afficher (){
            java.util.Vector<String> contenuliste = new java.util.Vector<String>();
            try {
                ResultSet réponse_aff = requete.executeQuery("select refpro from produit");
                réponse_aff.beforeFirst();
                while (réponse_aff.next()) {
                    contenuliste.add(réponse_aff.getString("refpro"));
                }
                réponse_aff.close();
            } catch(Exception e){System.out.println(e);}
            System.out.println(contenuliste);
            return contenuliste;
        }
    et
    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
        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.beforeFirst();
                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");
                réponse.close();
            } catch(Exception e){System.out.println(e);}
            return tableau;
        }
    voici l'erreur :
    org.postgresql.util.PSQLException: L'opération nécessite un scrollable ResultSet, mais ce ResultSet est FORWARD_ONLY.
    []

    par contre
    je ne uis même pas sur que l'erreur vient de là
    il ne faudrait pas juste désselectionner la liste à la sélection de la liste avant de réécrir la liste ?

    le truc que je comprend pas c'est pourquoi si je rafraichi la liste sans sélectionner, le code ne passe pas dans le code de sélection
    tandit que si je sélectionne un truc et ensuite je rafraichis, là il passe dans le code de sélection

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Points : 574
    Points
    574
    Par défaut
    D'après la première erreur, il s'agirait d'un ResultSet mal positionné.
    Tu peux essayer de "déselctionner" ta liste mais si le ResultSet en amont n'est pas fermé ou dans les choux sur un même objet, l'erreur se reproduira.

    Pour identifier si cela vient bien du ResultSet (ce que je crois), modifie ta méthode select () en mettant en dur une liste d'objets sans passer par un ResultSet, cela permettra d'identifier un peu mieux le problème.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    je début pas mal dans java
    et la méthode resultset est la seule que je connaisse pour sélectionner dans une DB

    mais déjà dans mon dernier message j'ai sans doute fait des erreurs pour ajouter le
    réponse.beforeFirst(); et le réponse.close();
    donc éjà sauriez vous m'éclairer un peu plus sur le code, pour le requète par rapport à ce que j'ai écrit au dernier message

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut ça bug toujours
    j'ai fait quelques modif pour essayer d'éclaircir le code, je teste par tout les moyen à cibler l'erreur ... ça vient forcément de se "Object[] select ..." mais je voie pas

    voici les 2 class avec lequel je travail :

    le code de la classe FenêtreBD :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    import java.awt.Color;
    import javax.swing.JList;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import javax.swing.JScrollPane;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    import javax.swing.AbstractButton;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class FenetreBD extends JFrame implements ActionListener, ListSelectionListener {
        String npro, refpro;
        boolean test = true;
        int npro2, compteur;
     
        DialogueBD bd_dialogue = new DialogueBD();
        private JPanel container = new JPanel();
        private JList liste = new JList(bd_dialogue.afficher());
        private JScrollPane frameliste = new JScrollPane(liste);
     
        private JLabel label_reponse = new JLabel("...");
        private JLabel label_col2 = new JLabel("refpro");
        private JTextField case_col2 = new JTextField();
        private JLabel label_col3 = new JLabel("libelle");
        private JTextField case_col3 = new JTextField();
        private JLabel label_col4 = new JLabel("prix");
        private JTextField case_col4 = new JTextField();
        private JLabel label_col5 = new JLabel("qstock");
        private JTextField case_col5 = new JTextField();
     
        private JButton button_add = new JButton("Ajoutez");
        private JButton button_suppr = new JButton("Supprimez");
        private JButton button_modif = new JButton("Moddifier");
        private JButton button_vide = new JButton("Videz");
     
        private JButton button_test = new JButton("test");
     
        public FenetreBD(){ 
     
            this.setTitle("base de donnée");
            this.setSize(390, 260+30);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setLocationRelativeTo(null);
     
            container.setBackground(Color.white);
            container.setLayout(null);
     
            frameliste.setBackground(Color.white);
            frameliste.setBounds(10,10,150,180);
     
            label_col2.setBounds(170, 10, 60, 20);
            case_col2.setBounds(240, 10, 140, 20);
            label_col3.setBounds(170, 10+30, 60, 20);
            case_col3.setBounds(240, 10+30, 140, 20);
            label_col4.setBounds(170, 10+60, 60, 20);
            case_col4.setBounds(240, 10+60, 140, 20);
            label_col5.setBounds(170, 10+90, 60, 20);
            case_col5.setBounds(240, 10+90, 140, 20);
     
            button_vide.setBounds(170, 140, 100, 20);
            button_add.setBounds(170+100+10, 140, 100, 20);
            button_suppr.setBounds(170, 140+30, 100, 20);
            button_modif.setBounds(170+100+10, 140+30, 100, 20);
     
            label_reponse.setBounds(10, 200, 370, 20);
            label_reponse.setForeground(Color.red);
     
            button_test.setBounds(10, 200+30, 100, 20);
     
            container.add(frameliste);
            container.add(label_reponse);
            container.add(label_col2);
            container.add(case_col2);
            container.add(label_col3);
            container.add(case_col3);
            container.add(label_col4);
            container.add(case_col4);
            container.add(label_col5);
            container.add(case_col5);
            container.add(button_add);
            container.add(button_suppr);
            container.add(button_modif);
            container.add(button_vide);
            container.add(button_test);
     
            this.setContentPane(container);
            this.setVisible(true);
     
            liste.addListSelectionListener(this);
     
            button_add.setEnabled(true);
            button_suppr.setEnabled(false);
            button_modif.setEnabled(false);
            button_vide.setEnabled(true);
     
            button_add.addActionListener(this);
            button_suppr.addActionListener(this);
            button_modif.addActionListener(this);
            button_vide.addActionListener(this);
     
            button_test.addActionListener(this);
        }
        public void valueChanged(ListSelectionEvent e) {
            if (e.getSource() == liste) {
                refpro = (String)liste.getSelectedValue();
     
                Object[] tableau = bd_dialogue.select(refpro);
                System.out.println(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]);
     
                label_reponse.setText("contenu pour npro de " + npro + " est affiché");
     
                refpro = "";
     
                button_add.setEnabled(false);
                button_suppr.setEnabled(true);
                button_modif.setEnabled(true);
                button_vide.setEnabled(true);
            }
        }
        public void actionPerformed(ActionEvent e) {
            boolean test = true;
            if (e.getSource() == button_test) {
                liste.clearSelection();
                liste.setListData(bd_dialogue.afficher()); // rafraichissement Liste
                compteur = compteur +1;
                System.out.println("liste rafraichi "+compteur+" fois");
                label_reponse.setText("liste rafraichie "+compteur+" fois");
            }
            if (e.getSource() == button_add) {
                /*
                if (case_col2.getText() == "") {
                    test = false;
                    label_reponse.setText("refpro doit contenir une valeur pour effectuer un ajout");
                }
                if (case_col3.getText() == "") {
                    test = false;
                    label_reponse.setText("libelle doit contenir une valeur pour effectuer un ajout");
                }
                if (case_col4.getText() == ""){
                    test = false;
                    label_reponse.setText("prix doit contenir une valeur pour effectuer un ajout");
                }
                if (case_col5.getText() == "") {
                    test = false;
                    label_reponse.setText("qstock doit contenir une valeur pour effectuer un ajout");
                }
                if (test == true) {
                */
                    label_reponse.setText("ajout effectué");
                    String refpro;
                    String libelle;
                    double prix = 0;
                    int qstock = 0;
                    String insert;
     
                    refpro = case_col2.getText();
                    libelle = case_col3.getText();
                    try {
                        prix =  Double.parseDouble(case_col4.getText());
                        qstock = Integer.parseInt(case_col5.getText());
                    } catch(Exception a){System.out.println(a);}
                    insert = bd_dialogue.insert(refpro,libelle, prix, qstock);
     
                    npro = "";
                    case_col2.setText("");
                    case_col3.setText("");
                    case_col4.setText("");
                    case_col5.setText("");
     
                    liste.setListData(bd_dialogue.afficher()); // rafraichissement Liste
     
                    button_add.setEnabled(true);
                    button_suppr.setEnabled(false);
                    button_modif.setEnabled(false);
                    button_vide.setEnabled(true);
                /*
                }
                else {
                    label_reponse.setText("conditions non rempli : ajout refusé");
                }
                */
            }
            if (e.getSource() == button_suppr) {
                if (test == true) {            
                    if (npro != "") {
                        String suppr = bd_dialogue.suppr(npro);
     
                        label_reponse.setText("contenu pour npro de " + npro + " est supprimé");
     
                        npro = "";
                        case_col2.setText("");
                        case_col3.setText("");
                        case_col4.setText("");
                        case_col5.setText("");
     
                        liste.setListData(bd_dialogue.afficher());// rafraichissement Liste
     
                        button_add.setEnabled(true);
                        button_suppr.setEnabled(false);
                        button_modif.setEnabled(false);
                        button_vide.setEnabled(true);
                    }
                }
            }
            if (e.getSource() == button_modif) {
                    label_reponse.setText("modification effectué");
                    String refpro;
                    String libelle;
                    double prix = 0;
                    int qstock = 0;
                    String modif;
     
                    refpro = case_col2.getText();
                    libelle = case_col3.getText();
                    try {
                        prix =  Double.parseDouble(case_col4.getText());
                        qstock = Integer.parseInt(case_col5.getText());
                    } catch(Exception a){System.out.println(a);}
                    modif = bd_dialogue.modif(npro, refpro, libelle, prix, qstock);
     
                    liste.setListData(bd_dialogue.afficher()); // rafraichissement Liste
     
     
                    npro = "";
                    case_col2.setText("");
                    case_col3.setText("");
                    case_col4.setText("");
                    case_col5.setText("");
     
                    button_add.setEnabled(true);
                    button_suppr.setEnabled(false);
                    button_modif.setEnabled(false);
                    button_vide.setEnabled(true);
            }
            if (e.getSource() == button_vide) {
                npro = "";
                case_col2.setText("");
                case_col3.setText("");
                case_col4.setText("");
                case_col5.setText("");
     
                button_add.setEnabled(true);
                button_suppr.setEnabled(false);
                button_modif.setEnabled(false);
                button_vide.setEnabled(true);
            }
        }
        public static void main(String[] args) {
            new FenetreBD();
        }
    }
    et de code de la classe DialogueBD :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import java.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
     
    public class DialogueBD {
        Statement requete;
        public DialogueBD() {
            try {
                Class.forName("org.postgresql.Driver");
                Connection lien = DriverManager.getConnection("jdbc:postgresql://localhost:5432","postgres","******");
                requete = lien.createStatement() ;
                String npro = "select npro from client";
            } catch(Exception e){System.out.println(e);}
        }
        Vector afficher (){
            java.util.Vector<String> contenuliste = new java.util.Vector<String>();
            try {
                ResultSet réponse_aff = requete.executeQuery("select refpro from produit");
                //réponse_aff.beforeFirst();
                while (réponse_aff.next()) {
                    contenuliste.add(réponse_aff.getString("refpro"));
                }
                //réponse_aff.close();
            } catch(Exception e){System.out.println(e);}
            System.out.println(contenuliste);
            return contenuliste;
        }
        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);}
            System.out.println(tableau);
            return tableau;
        }
        String insert (String refpro,String libelle,double prix,int qstock) {
            try {  
                requete.executeUpdate( "insert into produit(refpro, libelle, prix, qstock) values('"+ refpro +"','"+ libelle +"',"+ prix +","+ qstock +")");
            }catch(Exception r){System.out.println(r);}
            return null;
        }
        String suppr (String npro) {
            try {  
                requete.executeUpdate("delete from produit where npro =" + npro);
            }catch(Exception r){System.out.println(r);}
            return null;
        }
        String modif (String npro,String refpro,String libelle,double prix,int qstock) {
            try {  
                requete.executeUpdate("update produit set refpro = '"+ refpro +"', libelle = '"+ libelle +"', prix = "+ prix +", qstock = "+ qstock +" where npro =" + npro);
            }catch(Exception r){System.out.println(r);}
            return null;
        }
    }
    si quelqu'un veut bien y jeter un œil
    le problème se situe donc lors un clique sur le button_test précédé par une sélection dans la liste (un clique donc dans la liste)

    pour je ne sais quel raison, le fait de lancer le code :
    fait que le cheminement du programme va passer dans le void :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public void valueChanged(ListSelectionEvent e) {
             .....
        }
    ce qui va déclencher l'erreur du resultSet puisque ne n'ai pas cliqué dans la liste et donc que le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    refpro = (String)liste.getSelectedValue();
    ressort null

    j'ai du mal à expliquer vraiment le problème car j'ai déjà du mal à comprend l'erreure qui est comise.

    j'ai tenté de placer un réponse.close; (comme proposé précédemment) mais j'ai une autre erreur qui apparait
    et je ne sais pas comment fermer un resultSet
    j'ai demandé à on prof mais en regardant mon code ne voie pas d'erreur au niveau du resultSet au niveau de de la sélection dans la liste
    et il ne connait pas la liste donc ne sait pas m'aider plus ... (ça sert à quelque chose d'avoir un prof)

Discussions similaires

  1. Problem dans une select List en ASP MVC4
    Par napi15 dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 11/07/2013, 19h42
  2. probleme d'update sur une liste de selection
    Par kyryan dans le forum Hibernate
    Réponses: 0
    Dernier message: 29/02/2012, 16h37
  3. [AJAX] Select list et selected value
    Par Polymorph dans le forum AJAX
    Réponses: 10
    Dernier message: 14/10/2009, 12h18
  4. largeur liste de selection
    Par Anonymous dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/09/2004, 18h57
  5. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo