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

Composants Java Discussion :

Afficher les données d'une table SQL dans un JComboBox


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2010
    Messages : 14
    Points : 16
    Points
    16
    Par défaut Afficher les données d'une table SQL dans un JComboBox
    Bonjour
    j'ai parcouru le forum, mais je n'arrive toujours pas a identifier mon problème
    je n'ai pas pu afficher les éléments de ma table dans mon combobox.
    dans le 1er code, il m'affiche que la dernière ligne de ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    final ResultSet produits;
    int nbp = 0;			
    JComboBox comboBoxPro = new JComboBox();
     
    produits = state.executeQuery("SELECT NomProduit FROM Produit");
    while(produits.next()){
       comboBoxPro.setModel(new DefaultComboBoxModel(new String[] {produits.getString("NomProduit")}));
       nbp++;
    }
     
    comboBoxPro.setBounds(123, 192, 115, 22);
    getContentPane().add(comboBoxPro);
    mais le second ne m'affiche rien, meme pas la cmbobox vide
    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
     
    final ResultSet produits;
    int nbp = 0;
     
    JComboBox comboBoxPro = new JComboBox();
     
    produits = state.executeQuery("SELECT NomProduit FROM Produit");
     
    while(produits.next()){
    	comboBoxPro.addItem(produits.getString(nbp));
    	nbp++;
    }
     
    comboBoxPro.setBounds(123, 192, 115, 22);
    getContentPane().add(comboBoxPro);
    quelqu un peut m aider??
    il me manque surement un petit truc bete ^^"

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    L'index initial dans un resultset est 1 et non 0. Mais il est amplement préférable de récupérer les données en passant par le nom de colonne plutôt que l'index.

    Donc reprend ton second exemple et remplace nbp par la chaîne "NomProduit".

    Le problème dans ton premier exemple est que tu recrées le modèle de la combo box à chaque itération sur le résultset. Donc forcément, ta combo box ne contiendra que la dernière version du modèle.

    Autre chose, placer ses composants avec un setBounds est une mauvaise pratique. Je te conseille fortement de commencer à utiliser les layouts standards.

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/05/2014, 10h11
  2. [OpenOffice][Base de données] Afficher les données d'une table dans un formulaire
    Par Milapyl dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 05/03/2014, 21h31
  3. Réponses: 10
    Dernier message: 11/08/2009, 14h43
  4. [MySQL] afficher les données d'une table
    Par scarecrow1 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/11/2006, 18h07
  5. [SQL] Afficher les données d'une requete SQL
    Par griese dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/06/2006, 11h22

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