剛來實習,經理讓修改一個考試系統,看到以前的老前輩的代碼,感覺和自己以前在學校接觸的不一樣,特此總結一下Combox的綁定,雖然這個問題都是老生常談的東西了。感覺自己總結過了,明白了,反思了才會懂得,了解,以後也會運用自如了。
1,下面是前輩的例子,
首先從資料庫中得到ds資料集
然後進行循環綁定添加items項
foreach(DataRow dr in ds.Tables[0].Rows)
{
this.comb_type.Items.Add(new ControlItem(dr,dr["answertypename"].ToString()));
}
this.comb_type.SelectedIndex =0;
2,自己在學校學習的是綁定dt資料表或ds資料集。這樣就不用循環添加items項了,感覺代碼簡練了很多。
this.comb_type.DataSource = dt;//也可以用ds,此處就是ds.Tables[0];
this.comb_type.DisplayMember = "answertypename"; //綁定顯示成員的名字
this.com_answertype.ValueMember = "answertypeID";//綁定combox顯示成員的值
this.com_answertype.SelectedValue = "0";//讓combox固定顯示某個成員名字。
3,可以設定combox的DisplayMember,ValueMemeber
ValueMemeber 是combox的值成員,而DisplayMember是combox的顯示成員。
控件屬性設定和代碼中設定功能是一樣的。
4,綁定datasourse後,怎麼樣讓combox添加一項“請選擇”
在asp中直接一句話:
this.DropDownList1.Items.Insert(0,new ListItem( "請選擇 ", "0 "));
但在winform中,綁定datasourse後就不能簡單實作添加“請選擇”項了。
可以用下面的兩種方法實作
(1)首先獲得dt //或者ds
DataRow dr = ds.Tables[0].NewRow();
dr[0] = "0 ";
dr[1] = "請選擇 ";
ds.Tables[0].Rows.InsertAt(dr, 0);
this.com_answertype.DataSource = ds.Tables[0];
this.com_answertype.DisplayMember = "answertypename";
this.com_answertype.ValueMember = "answertypeID";
this.com_answertype.SelectedValue = "0"; //在此處選擇0值,即可顯示請選擇。
(2)在資料庫中直接添加一項“請選擇”,然後綁定dt或ds,在選擇要顯示的項即可。
轉載于:https://www.cnblogs.com/love-liu/archive/2011/12/26/2302147.html