2017-09-27 10 views
0

を取り込み、私は同じテーブルのC#:タイトルに記載されているように、複数のコンボボックスに同じテーブルの異なる列を持つ各

の異なる列にコンボボックスを移入していくつかの助けをいただければ幸い私は、実際のソースを持っていません私と一緒にコードが、私は

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; 

ようなもので1つのコンボボックスを移入することができましたが、私は5つのコンボボックスを持っている、と私はちょうどそのためのコードの同じブロックを5回繰り返したくありませんでした。私は周りを見回したとのBindingSourceにデータソースを変更するなど、いくつかの答えを見つけたので、のように:

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

が、そうすることは、指定された列(すなわちの最初の項目の各文字でコンボボックスを移入う最初の項目場合。 "Column_Name"はABCD、私のコンボボックスのオプションはA、B、C、D)

私はもっと答えを探してみましたが、何も見つかりませんでした。私のコンボボックスをより効率的に移植する方法があるのですか?それとも、それぞれのコードと本質的に同じコード行を繰り返す必要がありますか?誰かが助けることができれば、それは非常に高く評価されるでしょう。

+0

あなたは 'myCMB.DataSource = dtのように行うことはできません。 myCMB.DisplayMember = "col1"; myCMB.ValueMember = "col2"; myotherCMB.DataSource = dt; myotherCMB.DisplayMember = "col3"; myotherCMB.ValueMember = "col4"; ' –

+0

「同じテーブルの異なる列」とは、datatableテーブルまたはsqlテーブルを意味します。 – Amit

+0

最近の返信にはお詫び申し上げますが、正解をくれた@ChetanRanpariyaに感謝したい。私はあなたのコメントを正式な回答としてマークする方法を知らない。 –

答えて

0

は、データテーブルのコピーを使用します。

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; 
関連する問題