2011-08-04 12 views
0

データセットからコンボボックスにデータを挿入するためのコードシーケンスが完成しましたが、非常に多くの作業のようでした。私は短い道があるかもしれないと思った、そして私はこの質問について考えた。データセット内のテーブルの列にある行のセットを、最小のコード化努力でコンボボックスに入力できるリストに変換することは可能ですか?データセットをコンボボックスのデータソースとして使用できるリストに変換する方法はありますか?

私が試みたアプローチは、DataRowCollectionを返すためにDataset.Tables [0] .Select()を使用することでしたが、そのアイデアはクラッシュして焼き付けられました - コンボボックスはそれを受け入れたくありませんでした。

他のアプローチは、私が働いてみましたが、それは私が私の長いコードを持っていた同様のアプローチのように見えた:

DataSet comboBoxItems = new SQLCommands().GetStockIDs(); //Calls the uspGetStockIDs Stored procedure,Returning 1 Column (StockID from Stock Table) 
cbStockID.Items.Clear(); //Clears the Combobox 
foreach (DataRow dr in comboBoxItems.Tables[0].Rows) //Then Iterates through the retrieved rows 
{ 
    cbStockID.Items.Add(dr.Field<int>(0)); //and places them in the combobox 
} 

しかし、上記のコードは私の質問に答えませんでした。これは私の質問に言い換えるところです:データセット内のテーブルの列にある行のセットを、最小のコード化努力でコンボボックスに入力できるリストに変換することは可能ですか?

+0

後で確認する - 買い物をしてください。 – Eon

答えて

1

シナリオで共通のデータバインディングを使用できない理由はありますか?これはうまくいくはずです:

cbStockID.DataSource = comboBoxItems.Tables[0]; 
cbStockID.DisplayMember = "{DisplayTableColumnName}"; //Displayed items in the combo box. 
cbStockID.ValueMember = "{ValueTableColumnName}"; //Value for items displayed in combo box. 
+0

は爆弾のように動作するようでした! – Eon

+0

私はdisplayMemberとvaluememberを "StockID"に置き換えました - 私のデータセットの唯一の列 – Eon

+0

さらに優れています。私はバリューメンバーだけを使用しました。狂気の2行! – Eon

関連する問題