2017-09-27 7 views
0

comme indiqué dans le titre, j'apprécierait un peu d'aide avec peuplant comboboxes avec différentes colonnes de la même tableC# avec SQL: Peupler plusieurs comboboxes chacune avec différentes colonnes de même table

Je n'ai pas la source réelle codes avec moi, mais j'ai pu remplir un combobox avec quelque chose comme

SqlDataTable dt = new SqlDataTable(); 
SqlCommand comm = new SqlCommand(query, conn); 
SqlDataAdapter da = new SqlDataAdapter(); 
da.SelectCommand = comm; 
da.Fill(dt); 
myCMB.DataSource = dt; 
myCMB.DisplayMember = "display"; 
myCMB.ValueMember = "value; 

mais j'ai 5 comboboxes, et je ne voulais pas répéter les mêmes blocs de code 5 fois seulement pour cela. donc je regardé autour et a trouvé quelques réponses, y compris le changement DataSource à BindingSource, comme ceci:

myCMB.DataSource = new BindingSource(da, "Column_Name"); 

, mais cela ne ferait remplir la combobox avec chaque lettre du premier élément de la colonne spécifiée (par exemple si le premier élément. dans "Column_Name" est ABCD, mes options combobox seraient A, B, C, D)

Donc, j'ai essayé de chercher plus de réponses mais je n'en trouve pas. Y at-il un moyen plus efficace de peupler mes comboboxes ou dois-je vraiment répéter essentiellement les mêmes lignes de code pour chacun d'entre eux? Si quelqu'un peut aider, ce serait grandement apprécié.

+0

Tu ne peux pas faire comme 'myCMB.DataSource = dt; myCMB.DisplayMember = "col1"; myCMB.ValueMember = "col2"; myotherCMB.DataSource = dt; myotherCMB.DisplayMember = "col3"; myotherCMB.ValueMember = "col4"; ' –

+0

lorsque vous dites" différentes colonnes de la même table ", ce qui signifie table datatable ou sql. – Amit

+0

Toutes mes excuses pour la réponse tardive, mais je tiens à remercier @ChetanRanpariya pour m'avoir donné une réponse correcte. Cependant, je ne sais pas comment marquer votre commentaire comme une réponse officielle. –

Répondre

0

Utilisez une copie du datatable:

SqlDataTable dt = new SqlDataTable(); 
SqlCommand comm = new SqlCommand(query, conn); 
SqlDataAdapter da = new SqlDataAdapter(); 
da.SelectCommand = comm; 
da.Fill(dt); 

myCMB.DataSource = dt.Copy(); 


myCMB.DisplayMember = "display"; 
myCMB.ValueMember = "value;