1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2017
    Messages : 66
    Points : 48
    Points
    48

    Par défaut getSelectedItem().toString() insert la premiére valeur de la liste dans la base de données

    Comment ajouter la valeur séléctionnnée comboBox dans la base de données



    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
    JButton btnAjouter = new JButton("Ajouter");
     
    		btnAjouter.addActionListener(new ActionListener() {
     
     
    			public void actionPerformed(ActionEvent arg0) {
    				Connection connection;
    				java.sql.Statement statement ;
    			      connection = null;
    			      try
    			      {
    			    	 try {
    						Class.forName("org.sqlite.JDBC");
    					} catch (ClassNotFoundException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    			    	 connection = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\tosiba\\eclipse-workspace\\training1\\src\\BDD.db");
     
    			    	 JComboBox comboBox = new JComboBox();
     
    			    	 		String value = comboBox.getSelectedItem().toString();
     
     
    			 statement = connection.createStatement();
    			  statement.executeUpdate("INSERT INTO Client ( Nom , Prenom, Versement, Num , Nom_du_projet, idbloc , Date_de_versement ,Date_de_naissance ,  Adresse , Type_de_logement) VALUES('"+nom.getText()+"','"+prenom.getText()+"',"+ versement.getText()+","+ num.getText()+",'"+nomprojet.getText()+  "','"+ idbloc.getText()+"','"   +date.getText()+"',"+  datenaissance.getText()+ ",'"+adresse.getText()+"', ' " + comboBox.getSelectedItem().toString()  + "')" );
     
    			  JOptionPane.showMessageDialog(null, "Element ajouté");
     
     
    			    statement.close();
    			    connection.close();  .....

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 627
    Points : 4 591
    Points
    4 591

    Par défaut

    Qu'est-ce qui ne marche pas ?
    Message d'erreur ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 418
    Points : 24 866
    Points
    24 866
    Billets dans le blog
    2

    Par défaut

    Salut,

    Citation Envoyé par bensh Voir le message
    Comment ajouter la valeur sélectionnnée comboBox dans la base de données
    En récupérant la valeur sélectionnée dans la bonne combo box.

    Dans ton code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JComboBox comboBox = new JComboBox();
    String value = comboBox.getSelectedItem().toString();
    le new JComboBox() créé une nouvelle combo sans donnée, et dans laquelle il ne risque pas d'y avoir donc la moindre sélection (d'autant plus qu'elle n'est pas affichée).

    Dans ton interface, tu as une combo, il te faut donc un moyen d'y accéder (une variable) dans ton actionListener. Cela peut être une variable final locale à la méthode, si la combo et l'actionListener sont instanciés dans celle-ci, ou une variable de classe, si la classe d'actionListener est interne, ou un paramètre de la classe d'actionListener, exactement dans n'importe quel cas de méthode qui doit accéder aux données d'une instance d'objet créée ailleurs.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2017
    Messages : 66
    Points : 48
    Points
    48

    Par défaut

    J'ai enlevé la ligne String value = comboBox.getSelectedItem().toString();
    et j'ai toujours le même résultat en executant mon code.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 418
    Points : 24 866
    Points
    24 866
    Billets dans le blog
    2

    Par défaut

    Est-ce que j'ai dit qu'il fallait enlever cette ligne ? Een l’occurrence, elle ne sert à rien effectivement, puisque dans la construction de ta requête, tu utilises comboBox.getSelectedItem().toString()). Mais c'est normal que l'enlever ne change rien à l'exécution de ton code, puisque, comme je l'ai dit, tu vas chercher une sélection dans une combo qui n'en a pas (ou autrement dit, tu ne vas pas chercher la sélection dans la bonne combo, celle qui est affichée à l'écran, à priori).
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2017
    Messages : 66
    Points : 48
    Points
    48

    Par défaut

    j'ai laisser String value= conbobox.getSelectedItem() parce que je l'avais déja utilisé puis j'ai changé la requête .

  7. #7
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    octobre 2005
    Messages
    2 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 627
    Points : 4 591
    Points
    4 591

    Par défaut

    au moment où tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String value = comboBox.getSelectedItem().toString();
    aucune ligne n'est sélectionnée et "value" est vide
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 418
    Points : 24 866
    Points
    24 866
    Billets dans le blog
    2

    Par défaut

    Ce bout de code, déjà, c'est la première fois que tu le montres. "En bas du code", ça ne veut rien dire. Mais comme je te l'ai dit et redit : tu peux définir autant de combo que tu veux, les remplir, tout ça, mais si tu ne vas pas chercher la sélection dans la bonne combo, tu n'auras pas la bonne sélection.

    Le code suivant va afficher la sélection de la combo visible, soit Selection = "Item 1".
    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
    public class ExempleCombo1 extends JPanel {
     
    	private JComboBox<String> combo;
     
    	public ExempleCombo1() {
    		String[] items = {"Item 1","Item 2","Item 3"};
    		combo = new JComboBox<>(items);
     
    		add(combo);
     
    		showSelection();
     
    	}
     
    	private void showSelection() {
     
    		JOptionPane.showMessageDialog(this, "Selection = \"" + combo.getSelectedItem()+"\"");
     
    	}
     
    	public static void main(String[] args) {
    		JFrame frame = new JFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		frame.add(new ExempleCombo1());
     
    		frame.setSize(300, 300);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
     
    	}
     
    }
    Le code suivant va afficher la sélection de la combo créée dans la méthode showSelection(), soit Selection = "null" :
    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
    public class ExempleCombo2 extends JPanel {
     
    	private JComboBox<String> combo;
     
    	public ExempleCombo2() {
    		String[] items = {"Item 1","Item 2","Item 3"};
    		combo = new JComboBox<>(items);
     
    		add(combo);
     
    		showSelection();
     
    	}
     
    	private void showSelection() {
     
    		JComboBox<String> combo = new JComboBox<>();
     
    		JOptionPane.showMessageDialog(this, "Selection = \"" + combo.getSelectedItem()+"\"");
     
    	}
     
    	public static void main(String[] args) {
    		JFrame frame = new JFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		frame.add(new ExempleCombo2());
     
    		frame.setSize(300, 300);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
     
    	}
     
    }
    Parce que la variable combo créée dans showSelection cache la variable combo créée dans la classe ExempleCombo2. Et elle est vide de toute donnée, elle, parce que c'est dans l'autre qu'on a mis des données.

    En l'occurence, vu le code que tu montres, tu n'as même pas de variable de classe, donc tu créées 2 combo : une affichée à l'écran (à priori, parce que ton code ne montres pas ce que tu en fais), et une autre utilisée dans la méthode actionPerformed() de l'ActionListener.

    2 instances de JComboBox différentes, 2 variables différentes, 2 sélections différentes.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2017
    Messages : 66
    Points : 48
    Points
    48

    Par défaut

    Merci pour votre explication,
    Alors ou je dois créer ma comboBox pour qu'elle s'affiche sur l'écran et aussi la veleur séléctionnée s'ajoute dans ma base de données

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    10 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 10 418
    Points : 24 866
    Points
    24 866
    Billets dans le blog
    2

    Par défaut

    Citation Envoyé par bensh Voir le message
    Alors ou je dois créer ma comboBox
    C'est surtout la variable qui compte, celle qui contient la référence de ta combo. Et il faut la déclarer la où elle est accessible par la méthode qui créé l'instance et par celle qui l'utilise, à défaut de la passer en paramètre. Comme dans mon exemple, où j'ai déclaré la variable comme variable de classe, accessible donc dans la méthode qui instancie (celle qui fait le new ) et dans la méthode qui utilise (celle qui fait le getSelectedItem())) . Maintenant, difficile de te donner plus de précisions, puisqu'on a pas tout ton code.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre du Club
    Femme Profil pro
    Ingénieur en Télécommunication
    Inscrit en
    octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur en Télécommunication
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2017
    Messages : 66
    Points : 48
    Points
    48

    Par défaut

    C'est bon j'ai résolu le probléme, Merci beaucoup pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/05/2011, 15h39
  2. Réponses: 1
    Dernier message: 10/05/2009, 01h45
  3. Réponses: 15
    Dernier message: 21/12/2008, 20h31
  4. Réponses: 6
    Dernier message: 04/04/2008, 13h09
  5. Réponses: 1
    Dernier message: 23/06/2006, 12h19

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