-
ComboBox en Datasource
Bonjour à tous!
Alors voilà, j'ai un petit soucis.
Il faut tout d'abord savoir que ma bdd est sur serveur
J'ai une comboBox avec ;
DataSource :clientsBindingSource
DisplayMember : nom
ValueMember: id_client
Donc, dans ma comboBox, j'ai bien le nom de mes clients. Maintenant, je veux récupérer l'id_client et je n'y arrive pas
J'ai essayé en faisant :
Code:
comboBox.SelectedValue.ToString();
Si vous avez une réponse, et si je suis pas assez claire, n'hésitez pas à le dire
-
Salut,
As-tu essayé la propriété SelectedItem de ta ComboBox ?
Sinon tu peux ausi recupérer l'élément sélectionné grâce à la propriété CurrentItem de ta source de donnée clientsBindingSource.
-
Utilise un breakpoint et un watch pour regarder ce que vaut comboBox.SelectedValue
J'ai déjà eu des problèmes car mes DisplayMember et ValueMember n'avaient pas les bonnes valeurs (l"utilisation des As dans le Select est parfois utile (Select Id As Id_Client From Client)
-
+1 avec Benoit.
Les propriétés DisplayMember, ValueMember que tu as spécifiées ne doivent pas avoir les mêmes noms que les colonnes de ta table SQL (ou des colonnes de ton select...)
-
Merci de vos réponses.
J'ai essayé en changeant les propriétés avancées du Binding sans succés. Je suis sûre des noms des colonnes puisque je ne fait que cliquer dessus dans la liste proposée tirée de ma BDD.
-
Déjà si la SelectedValue ne pouvait être récupérée alors la méthode ToString() échouerait parce que impossible de l'appliquer sur une référence nulle.
En mettant un point d'arrêt au niveau de cette instruction peux-tu nous dire ce que ça t'affiche lorsque tu survoles la propriété ? Dis-nous aussi quel est le type de l'objet stocké ?
Merci.
-
En fait, le comboBoxNom.SelectedValue.ToString() me renvoit par exemple :
comboBoxNom.SelectedValue { nom = "Dupont" } <Anonymous Type>
-
Deux petites questions :
1 - Les objets de ta source de données clientsBindingSource ne sont-elles pas des types anonymes ?
2 - T'es sûre que client_id est de type int ?
Bref mets-nous une capture d'écran de comment t'as configuré les propriétés de ton ComboBox via VS. ;)
-
1 pièce(s) jointe(s)
-
Déjà en regardant ta capture, je me demande si la valeur sélectionnée ne devrait pas autre chose qu'une liste encore moins une binding source clientsBindingSource1 qui contient la même liste d’éléments que a binding source clientsBindingSource rattachée déjà au DataSource de ta ComboBox. C'est incohérent tout ça.
Si tu insistes dans ce cas d'utilisation, je pense que la valeur sélectionnée devrait plutôt être bindée à la propriété Current de clientsBindingSource1 au lieu de la propriété client_id.
Bref avant d'effectuer quoi que ce soit je te conseille de vider la propriété valeur sélectionnée dans le designer et de tester si t'arrives à récupérer la bonne valeur dans SelectedValue.
-
J'ai trouvé!
Dans l'initialisation de ma comboBox, je devais rajouter c.id_client dans ma requête sql apparemment