Combobox datasource

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 7 févr. 2008 à 21:20
bidou_01 Messages postés 134 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 19 mai 2008 - 8 févr. 2008 à 09:21
bonjour
j'aimerais utiliser un combo box afin de choisir une valeur permettant de faire un query avec filtre "where"
ce combo box est lui meme rempli a l'aide de valeurs d'un select dans une table
pour cela je fais
combobox.displaymember="display field"
combobox.valuemember="value field"
combobox.datasource=dataset.table[0]

MAIS
cela me donne la liste de tous les elements existants dans la table, ni plus ni moins.
disons : "rouge","vert","bleu"
j'aimerais ajouter une valeur suplementaire "TOUT" indépendante du contenu du dataset afin de permettre de faire un select SANS le filtre de la valeur demandée
donc si je choisis "rouge","vert" ou "bleu" je lance le query avec un where
mais si je vois "TOUT" je fais un query sans where

La question : sachant que mon dataset servant de datasource est rempli par un query mysql comment est il possible d'ajouter cette valeur "TOUT" pour qu'elle soit active dans le combobox.


J'espere ne pas avoir été trop confus !








 
A voir également:

5 réponses

bidou_01 Messages postés 134 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 19 mai 2008 1
7 févr. 2008 à 21:23
Hello,

Ben tu peux remplir ton dataSet avec la requete SQL, puis ajouter une ligne dedans ? Enfin je pense... Et tu ne sauvegardes pas les modifs !

Cordialement,

Bidou_01 

<hr />http://www.corioland.eu
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
7 févr. 2008 à 21:58
Merci

C'est peut etre la bonne methode

mais deux chose me perturbaient
1- ne pas alterer la db
2- comment recuperer la reference du row que j'ajoute au dataset ?

Pour contouner ces deux point j'ai pris un chemin peut etre un peu lourd :

a) utiliser une table temporaire copie de la table dataset
      DataTable dtTmp = dschauff.Tables[0];
b) creer une row en recupérant sa reference
      DataRow _row = dtTmp.NewRow();
c) ajouter les données


      _row["chauffeurID"] = 0;
      _row["naam"] = "ALL";
d) charger le combobox
      dtTmp.Rows.Add(_row);

j'admet que
dschauff.Tables[0].rows.add();
serait plus direct
donc je fais
DataRow _row = dschauff.Tables[0].rows.add();

pour recupere la reference


MERCI




 
0
bidou_01 Messages postés 134 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 19 mai 2008 1
7 févr. 2008 à 22:02
Hum,

Effectivement y'a risque d'altération de la base. Sinon une idée toute bête me vient ==> pourquoi ne pas passer par l'intermédiaire d'une List regroupant tes valeurs, auquel tu ajouterais un item... Au moins on se détache un peu de la base :)

Cordialement,

Bidou_01 

<hr />http://www.corioland.eu
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
7 févr. 2008 à 22:36
Merci,

Oui c'etait ma premiere idée

a) utiliser une table temporaire copie de la table dataset
      DataTable dtTmp = dschauff.Tables[0];
b) creer une row en recupérant sa reference
      DataRow _row = dtTmp.NewRow();
c) ajouter les données
      _row["chauffeurID"] = 0;
      _row["naam"] = "ALL";
d) charger le combobox
      dtTmp.Rows.Add(_row);

Tu vois plus simple ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bidou_01 Messages postés 134 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 19 mai 2008 1
8 févr. 2008 à 09:21
Hello,

Comme je te l'ai dit, tu pourrais passer par une Collection (Liste<T>, ArrayList ..). Charger ton DataSet dans la Collection, ajouter ta valeur, puis binder la collection à ta comboBox.

Mais au final je ne suis pas sur que ce soit plus simple, ni même mieux :)

Cordialement,

Bidou_01 

<hr />http://www.corioland.eu
0
Rejoignez-nous