Comment lier un élement du combo avec son identifiant dans un textbox [Résolu]

Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
- - Dernière réponse : Whismeril
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
- 19 juil. 2012 à 18:26
salut à tous,

je reviens encore une fois demander votre aide sur mon application.
au fait je voudrais savoir comment faire pour lier un element du combo
a son identifiant se trouvant dans un autre textbox.je m'explique avec le code
je crois que c'est mieux.

ceci est le code pour remplissage du combobox:

     DataTable dt = new DataTable();
              dt.Columns.Add("marque",typeof(System.String));
              this.cmboboxMarque.DataSource = dt;
              string query = "select marque from marqueVehicule order by marqueId";
              SqlCommand command = new SqlCommand(query,maConnexion);
              SqlDataReader olecteur = command.ExecuteReader();
              this.cmbMarque.DisplayMember = "marque";
              dt.Load(olecteur);
              this.cmboboxMarque.SelectedIndex = -1;
              cmboboxMarque.Text = "-- Choix de la marque --";


Alors ce que je veux c'est que si je sélectionne la marque dans le combobox
son identifiant s'affiche dans un textbox a côté de ce combobox.

je ne sais pas comment le faire.mais pour le combo j'arrive à selectionner
un élément mais pour son identifiant franchement je n'y arrive pas.

merci d'avance pour votre aide..
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
1
3
Merci
merci Whismeril

j'apprécie vraiment la manière dont vous m'avais
secouru et je m'excuse je n'avais pas vu le lien je l'ai visité
mais j'ai adopté la solution de Jopop car elle partait dans la meme logique
que j'avait commencé mais quand mm je vous dois une tres gde reconaissance

merci bcp..

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de niyericsson
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
10
0
Merci
Salut,

le ComboBox possède un attribut qui s'appelle ValueMember (à mettre en opposition au DisplayMember) qui permet justement d'associer une valeur utile à ton item.

Ta requête doit donc faire un SELECT des deux champs, celui à afficher (marque) et celui à utiliser pour connaitre l'enregistrement (marqueId ?). Puis tu associe ce deuxième champ au ValueMember de ton ComboBox, de la même manière que tu le fais pour le DisplayMember.

Ensuite, il faut définir une fonction à associer à l'évènement SelectedIndexChanged de ton ComboBox. Son attribut SelectedValue contiendra alors la valeur (et nom le texte) de l'item sélectionné, que tu pourras alors écrire dans ta TextBox.

Bon dev
Commenter la réponse de cs_jopop
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
1
0
Merci
Merci Jopop,
je vais essayer ta solution et je vais te faire signe
apres le resultat..

a plus!!
Commenter la réponse de niyericsson
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
Bonjour,
si tu bindes ton datagridview et ton textbox par l'intermédiaire d'un databingsource ça devrait le faire tout seul




Whismeril
Commenter la réponse de Whismeril
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
1
0
Merci
salut jopop,

voici le message d'erreur que j'optiens lorsque
je tente avec votre solution:

"Cannot bind to the new value member."

est ce que ce n'est pas au fait qu'au moment d'ajout
des elements du colonnes le marqueId n'y est pas??

2ème ligne du code:

dt.Columns.Add("marque", typeof(System.String));


lorsque j'ai tenté d'ajouter le marqueId a cette ligne
j'optiens des erreurs...

si vous avez une idée aide moi s'il vous plaît...

merci pour votre aide..
Commenter la réponse de niyericsson
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
1
0
Merci
salut whismeril,

pouriez vous m'expliquer votre proposition??

merci encore une fois pour votre aide..
Commenter la réponse de niyericsson
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
10
0
Merci
As-tu modifié ta requête comme je te l'ai notifié plus haut ?
Commenter la réponse de cs_jopop
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
1
0
Merci
salut,


oui jojop je l'ai modifiée elle est de la forme:

string query = " select marqueId,marque from marqueVehicule order by marqueId";


merci encore pour ton aide..
Commenter la réponse de niyericsson
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
pouriez vous m'expliquer votre proposition??


Je t'ai posté un lien, vers un tuto qui explqiue l'utilsation de l'objet databindingsource dont l'utilité est exactement ce que tu demandes.

Whismeril
Commenter la réponse de Whismeril
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
10
0
Merci
Ben je sais pas quoi te dire, je viens de tester le code auquel je pensais et il fonctionne chez moi, le voilà (ma BDD est MySQL, d'où les noms des objets qui diffèrent avec les tiens ; mon ComboBox se nomme cmbNames et ma TextBox txtSelectedId) :

* partie initialisation :
	string rqt =  "SELECT name, id FROM matable";
MySqlConnection cnx = new MySqlConnection("Data Source=localhost;Database=madb;User ID=user;Password=pass");

cnx.Open();

MySqlCommand cmd = new MySqlCommand(rqt, cnx);
MySqlDataAdapter ada = new MySqlDataAdapter(cmd);
DataSet res = new System.Data.DataSet();
ada.Fill(res);

cmbNames.DataSource = res.Tables[0];
cmbNames.DisplayMember = "name";
cmbNames.ValueMember = "id";

cnx.Close();


* l'event sur le changement de sélection du ComboBox :
private void cmbNames_SelectedIndexChanged (object sender, EventArgs e) {
txtSelectedId.Text  = cmbNames.SelectedValue.ToString();
}
Commenter la réponse de cs_jopop
Messages postés
30
Date d'inscription
lundi 9 avril 2012
Dernière intervention
17 juillet 2014
1
0
Merci
merci beaucoup jopop votre solution est correcte
je viens de l'appliquer et elle a marché..

merci vraiment de la maniere dont vous m'avez porté secours
je vous suis vraiment trè reconaissant..

merci bcp a plus..
Commenter la réponse de niyericsson
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
10
0
Merci
De rien l'ami, pense juste à noter "Réponse acceptée" ;)
Commenter la réponse de cs_jopop
Messages postés
12727
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 février 2019
332
0
Merci
Pas de problème, valide la réponse de jopop pour clore le sujet

Whismeril
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.