我在asp.net中有两个复选框列表,
第一个列表包含所有水果名称,第二个列表只有很少的水果名称。
使用sqldatasource 从数据库填充列表
现在我需要做一些事情,以便所有水果的第一个列表应该只有不在列表2中的水果
这是代码先生,
private void AllFruitsNames()
{
using (SqlDataSource ds = new SqlDataSource(ConnectionString(), "SELECT FruitName FROM FruitTable"))
{
CheckBoxList1.DataSource = ds;
CheckBoxList1.DataTextField = "FruitName";
CheckBoxList1.DataBind();
}
}
private void PopulateOnlyFewFruitsNames(int crateID)
{
CheckBoxList2.Items.Clear();
using (SqlDataSource ds = new SqlDataSource(CS(), "SELECT FruitName FROM FruitTable Where crateID ='" + crateID + "'"))
{
CheckBoxList2.DataSource = ds;
CheckBoxList2.DataTextField = "FruitName";
CheckBoxList2.DataBind();
}
}
如何平衡水果,就好像水果在第二个复选框列表中一样,然后它应该从复选框列表1中删除
答案 0 :(得分:0)
您似乎拥有要在第二个列表中的水果ID。
只需从第一个查询中排除所有带有此ID的水果:
"SELECT FruitName FROM FruitTable WHERE crateID NOT IN(" + String.Joing(",",crateIDList) + ")"
BTW:你真的不应该以这种方式构建SQL查询。他们很容易受到sql注入。请改用参数化查询。以下是关于该主题的文章:Using parameterized queries with the SQLDataSource