asp.net中checkboxlist多条件查询

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:20:22
现在我有3个数据表
t1(diseaseid,name1), name1是病害名
t2(symptomid,name2), name2是症状名
关系表t3(id,diseaseid,symptomid)。表3是多对多的关系,一个病害可能有几个症状组成,一个症状也会在多个病害中出现,
比如t1: diseaseid name1
1 小叶病
2 大叶病
3 黄叶病
4 大斑病
t2 symptomid name2
1 叶片发黄
2 叶片萎缩
3 叶片出现病斑

t3: id diseaseid symptomid
1 1 2
2 1 3
3 2 1
4 2 3
5 3 1
checkboxlist与t2绑定,checkboxlist用症状做条件来查询,会同时选多个条件,最后得出病害名,如果同时选中1 叶片发黄,3 叶片出现病斑时根据表t3查询出结果为diseaseid =2的病害。
希望给出详细的CS代码。谢谢了

主要是使用Relations来实现。
1、将3个表加载到dataset里面。
2、checkboxlist1绑定t1。
3、建立关系。
DataRelation bhRelation =
dataset.Relations.Add("binghai",
dataset.Tables[t1"].Columns["diseaseid"],
dataset.Tables["t3"].Columns["diseaseid"]);

DataRelation zzRelation =
dataset.Relations.Add("zhengzhuang",
dataset.Tables["t3"].Columns["symptomid"],
dataset.Tables["t2"].Columns["symptomid"]);
4、查询数据
DataRow 选定行=dataset.Tables["t1"].Rows[i];
foreach (DataRow orderRow in 选定行.GetChildRows(bhRelation))
{
foreach (DataRow detailRow in orderRow.GetChildRows(zzRelation))
{
//将detailRow添加到checkboxlist2里面去。
checkboxlist2.Items.Add(new ListItem(detailRow["symptomid"],detailRow["name2"]));
}
}

你先把t1和t2的数据绑定checkboxlis1和checkboxlis2中
this.CheckBoxList1.DataTextFiel