2011-12-03 103 views
0

私はコンボボックスにバインドする2つの列(1.名前と2.値)を持つExcelファイルを持っています。コンボボックスValueMemberとDisplayMemberの使用

DisplayMemberの名前に設定すると、Excelファイルの[名前]列のすべての値が表示されます。

テキストフィールドと値フィールドを持つasp.netコントロールと同様のドロップダウンを取得したいので、テキストフィールドを選択するとバックグラウンドコードを使用して値フィールドを取得できるようにします。

どのように私はコンボボックス(WinForms)で行うことができますか?

私は次のコードを使用しています。

String strConn = "Provider=Microsoft.jet.OLEDB.4.0;" + "Data Source="C:\vipin.xls"+ "Extended Properties=Excel 8.0;"; 
DataSet ds = new DataSet();   
OleDbDataAdapter da = new OleDbDataAdapter("SELECT [name] FROM [Sheet1$] where Component=1 ", strConn);   
da.Fill(ds); 
dataGridView1.DataSource = ds.Tables[0].DefaultView;    
comboBox1.DataSource = ds.Tables[0].DefaultView; 
comboBox1.DisplayMember = "name"; 
+0

答えの横にあるチェックマークをクリックして、問題を解決する答えを受け入れることを忘れないでください。 –

答えて

2

コンボボックスのValueMemberに値を割り当てることができます。

OleDbDataAdapter da = new OleDbDataAdapter("SELECT [name],[value] FROM [Sheet1$] where Component=1 ", strConn); 
comboBox1.DisplayMember = "name"; 
comboBox1.ValueMember = "value"; 
comboBox1.BindingContext = this.BindingContext; 

HTH。

+0

このコードを使用すると、表示メンバーはname列のすべての値を表示しますが、値はそれぞれdisplayメンバー:System.Data.DataRowViewです。私は値のメンバーのために何をする。 –

+0

私はその価値にアクセスすることができませんでした。今私はポイントを得た。 –

+0

その作品はうまくいきました。 –

関連する問題