刚来实习,经理让修改一个考试系统,看到以前的老前辈的代码,感觉和自己以前在学校接触的不一样,特此总结一下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,在选择要显示的项即可。