0

asp.netに2つのチェックボックスリストがあり、

1 番目のリストにはすべての果物の名前があり、2 番目のリストにはいくつかの果物の名前しかありません。

リストは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();
    }
}

果物が2番目のチェックボックスリストにある場合、果物をチェックボックスリスト1から削除する必要があるかのように、果物のバランスをとるにはどうすればよいですか

4

1 に答える 1

0

2 番目のリストに入れたい果物の ID があるようです。

最初のクエリから、この ID を持つすべての果物を除外するだけです。

"SELECT FruitName FROM FruitTable WHERE crateID NOT IN(" + String.Joing(",",crateIDList) + ")"

ところで:この方法で SQL クエリを作成するべきではありません。SQL インジェクションに対して脆弱です。代わりにパラメーター化されたクエリを使用してください。このトピックに関する記事は次のとおりです: SQLDataSource でパラメーター化されたクエリを使用する

于 2013-05-09T15:57:27.033 に答える