Comment utiliser le DisplayMember et ValueNumber C#
Résolu/Fermé
moiii123
Messages postés
19
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 avril 2016
-
24 juin 2015 à 10:33
Utilisateur anonyme - 24 juin 2015 à 18:01
Utilisateur anonyme - 24 juin 2015 à 18:01
A voir également:
- Comment utiliser le DisplayMember et ValueNumber C#
- Comment utiliser chromecast - Guide
- Comment utiliser l'ia - Accueil - Guide Intelligence artificielle
- Comment utiliser utorrent - Télécharger - Téléchargement & Transfert
- Comment utiliser wetransfer gratuit ? - Guide
- Comment utiliser google drive - Guide
4 réponses
Utilisateur anonyme
24 juin 2015 à 11:10
24 juin 2015 à 11:10
Bonjour, comme il y a 50 façons d'alimenter un combobox depuis une base de données, la réponse va dépendre de ce que tu as fait.
Merci donc de poster ton code en utilisant la coloration syntaxique.
Merci donc de poster ton code en utilisant la coloration syntaxique.
moiii123
Messages postés
19
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 avril 2016
24 juin 2015 à 11:47
24 juin 2015 à 11:47
Re-bonjour,
Voici ce que j'ai fais pour le moment, mon combobox s'alimente bien.
Juste je ne sais pas comment gérer le DisplayMember et ValueNumber.
Merci d'avance.
moiii123
Voici ce que j'ai fais pour le moment, mon combobox s'alimente bien.
Juste je ne sais pas comment gérer le DisplayMember et ValueNumber.
private void Form3_Load(object sender, EventArgs e) { comboBox1.SelectedItem = 0; OleDbConnection CONNEXION_BASE = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + CHEMIN_BASE_MDB); using (CONNEXION_BASE) { CONNEXION_BASE.Open(); using (OleDbCommand COMMANDE = new OleDbCommand()) { COMMANDE.CommandText = "SELECT id_user, nom_user FROM [USER]"; COMMANDE.Connection = CONNEXION_BASE; OleDbDataReader reader = COMMANDE.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { string ligne = reader["nom_user"].ToString(); // comboBox1.Text += ligne; comboBox1.Items.Add(reader["nom_user"].ToString()); } } } CONNEXION_BASE.Close(); }
Merci d'avance.
moiii123
Utilisateur anonyme
24 juin 2015 à 16:07
24 juin 2015 à 16:07
Ok
Attention à prendre en compte:
Pour que tu puisses utiliser Display et Value Members, il faut que le combobox connaissent les membres en question, or tu ne lui renseignes qu'une colonne.
Je te donnes un exemple avec liste d'objets (avec le bémol de mon nota au dessus), soit la classe Contact
si mesContacts est une List<T> de Contact, alors
Donc tu peux essayer de mettre ton reader en datasource (je ne sais pas si c'est possible), de rentrer chaque ligne comme obejt (là non plus), ou enfin de te créer une liste d'objet de de gerer avec comme je viens de te le montrer
Une autre option est de te servir d'un bindingsoucre (voir ce tuto) mais je ne l'ai pas essayé avec un reader (c'est sensé fonctionner)
Attention à prendre en compte:
- je ne fais pas de base de données, donc mon raisonnement s'appuie sur mon expérience des listes d'objets.
- je n'ai pas VS sous la main, donc je tape sans intellisense et sans compilation pour vérifier.
Pour que tu puisses utiliser Display et Value Members, il faut que le combobox connaissent les membres en question, or tu ne lui renseignes qu'une colonne.
Je te donnes un exemple avec liste d'objets (avec le bémol de mon nota au dessus), soit la classe Contact
public class Contact { public string Nom {get; set;} public string Prenom {get; set;} public string NomComplet {get{return string.Format("{0} {1}",Prenom, Nom");}} }
si mesContacts est une List<T> de Contact, alors
monCombobox.DataSource = mesContacts;//là j'injecte toutes ma liste donc tous mes contacts avec tous leurs champ monCombobox.DisplayMember = "NomComplet";//là je précise le nom du champ à afficher monCombobox.ValueMember = "Nom";//ici le nom du champ qui sert de valeur
Donc tu peux essayer de mettre ton reader en datasource (je ne sais pas si c'est possible), de rentrer chaque ligne comme obejt (là non plus), ou enfin de te créer une liste d'objet de de gerer avec comme je viens de te le montrer
Une autre option est de te servir d'un bindingsoucre (voir ce tuto) mais je ne l'ai pas essayé avec un reader (c'est sensé fonctionner)
moiii123
Messages postés
19
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 avril 2016
24 juin 2015 à 17:11
24 juin 2015 à 17:11
D'accord, c'est impeccable.
Tout fonctionne bien.
Merci beaucoup.
Tout fonctionne bien.
Merci beaucoup.