2011-11-12 2 views
0

私はこのようなCOMBOXを投入しようとしています:DisplayMemberとコンボボックスの人口とValueMemberで

 DataSet ds = new DataSet(); 
     SqlDataAdapter da = new SqlDataAdapter("SELECT id,name FROM table1", con); 
     da.Fill(ds, "FillDropDown"); 

     comboProject.DisplayMember = "FillDropDown.name"; 
     comboProject.ValueMember = "FillDropDown.id"; 
     comboProject.DataSource = ds.Tables["FillDropDown"]; 

しかし、すべての項目は、コンボボックスで「System.Data.DataRowView」として表示されます。それはなぜそれのようなものですか? ありがとうございました。

+0

警告。 DisplayMember = "name"を使用すると、点消化時に誤動作する可能性があります。それはもはや "名前"と呼ばれることはありません。 –

答えて

1
try comboProject.DataSource = ds.Tables["FillDropDown"].DefaultView; 
+0

いいえ..問題はまだあります.. – Pranav

+0

@Pranavこれを試してくださいcombobject.DataSource = ds.Tables ["FillDropDown"]。DefaultView; comboProject.DisplayMember = "name"; comboProject.ValueMember = "id"; – Karthik

+0

実際に私は試してみました。ディスプレイと値のメンバからテーブル名を削除しただけでは、うまくいきました。 – Pranav

2

はこれを試してみてください。

DataSet ds = new DataSet(); 
SqlDataAdapter da = new SqlDataAdapter("SELECT id,name FROM table1", con); 
da.Fill(ds, "FillDropDown"); 

comboProject.DisplayMember = "name"; 
comboProject.ValueMember = "id"; 
comboProject.DataSource = ds.Tables["FillDropDown"]; 
comboProject.DataBind(); 
関連する問題