问题描述
在Winform下,CheckedlistBox如何将数据库设置好的值绑定到该控件并置为checked?我的思路是:1.先将数据库所有数据绑定起来,2.再读取数据库中设置好的值,放入DataTable。3.根据2.中的DataTable的值遍历并与1.中的值对比,如果相等就置为checked。现在的问题是第三步如何写?我没有找到控件方法,向大家请教了。
解决方案
解决方案二:
你是从数据库里面查询到的值然后绑定到checkedListBox上面吗,然后从另外一张表里面读取字段的值要和checkedListBox控件上面的值进行匹配,如果匹配就让他选中是吗?如果是的话我有个功能是和你的相似但是我的这两张表是一对一的关系:列如:#region绑定银行名称下拉列表List<TA_B_Bank>bankList=bankBLL.GetAll();this.clbBank.DataSource=bankList;this.clbBank.DisplayMember="BankName";this.clbBank.ValueMember="BankCode";#endregion//查询银行签约信息List<TA_B_BankProtocol>bankProList=newBankProtocolBLL().GetSearch("CustomerId="+obj.CustomerId);if(bankList.Count>0){bp=bankProList[0];//签约银行for(inti=0;i<this.clbBank.Items.Count;i++){//就是这个if判断(我是把这个checkedlistbox的Items[i]重新转型为TA_B_Bank就是我上面绑定到checkedlistbox控件的那张表的数据;这样做的目的呢就是可以拿到每个实体对象中的BankCode字段的值,这个是关键)if(bp.BankNo.Equals((this.clbBank.Items[i]asTA_B_Bank).BankCode)){//这里设置checkedlistbox的某一项值被选中this.clbBank.SetItemChecked(i,true);}}不知道能不能帮到你!你看看吧;不管你表的映射关系怎样,做法都一样的;
解决方案三:
这个的话我建议你换个思路```1.读取数据源2.动态加载到控件(for循环加入控件,加入的同事就读取是否为选中,在这就设置选中状态就OK)
解决方案四:
你是从数据库里面查询到的值然后绑定到checkedListBox上面吗,然后从另外一张表里面读取字段的值要和checkedListBox控件上面的值进行匹配,如果匹配就让他选中是吗?如果是的话我有个功能是和你的相似但是我的这两张表是一对一的关系:列如:#region绑定银行名称下拉列表List<TA_B_Bank>bankList=bankBLL.GetAll();this.clbBank.DataSource=bankList;this.clbBank.DisplayMember="BankName";this.clbBank.ValueMember="BankCode";#endregion//查询银行签约信息List<TA_B_BankProtocol>bankProList=newBankProtocolBLL().GetSearch("CustomerId="+obj.CustomerId);if(bankList.Count>0){bp=bankProList[0];//签约银行for(inti=0;i<this.clbBank.Items.Count;i++){//就是这个if判断(我是把这个checkedlistbox的Items[i]重新转型为TA_B_Bank就是我上面绑定到checkedlistbox控件的那张表的数据;这样做的目的呢就是可以拿到每个实体对象中的BankCode字段的值,这个是关键)if(bp.BankNo.Equals((this.clbBank.Items[i]asTA_B_Bank).BankCode)){//这里设置checkedlistbox的某一项值被选中this.clbBank.SetItemChecked(i,true);}}不知道能不能帮到你!你看看吧;不管你表的映射关系怎样,做法都一样的;
解决方案五:
for(inti=0;i<ds.Table[0].Rows.Count;i++){if(条件){this.checkedListBox1.Items.Add(值);//设置已经勾选}else{this.checkedListBox1.Items.Add(值);}}
解决方案六:
stringsql="select*froma";DataSetds=newDataSet();ds=Maticsoft.DBUtility.DbHelperSQL.Query(sql);//获得数据源for(inti=0;i<ds.Tables[0].Rows.Count;i++){if(ds.Tables[0].Rows[i][2].ToString()=="1"){this.checkedListBox1.Items.Add(ds.Tables[0].Rows[i][1],true);//这里设置新添加的这一项是否为选中}else{this.checkedListBox1.Items.Add(ds.Tables[0].Rows[i][1],false);//这里设置新添加的这一项是否为选中}}
解决方案七:
等结帖收分了