2013-05-09 50 views
0

我在asp.net 2名複選框列表,雖然數據綁定的CheckBoxList

1日列表中有所有的水果名稱和第二列表中有隻有很少的水果名稱。

列表都可以從數據庫中使用的SqlDataSource

現在我需要做的事情讓所有的水果1日列表應該只有水果不在列表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(); 
    } 
} 

我怎麼能平衡的水果,如果水果是在第二複選框列表,那麼它應該從CheckBoxList的被去除1

+0

crateID從哪裏來? – magnattic 2013-05-09 15:54:15

+0

從下拉列表中,先生,索引改變了我正在使用的事件 – Change 2013-05-09 15:55:02

回答

0

看起來你有想要在第二個列表中的水果的ID。

就排除與第一個查詢這個ID的所有水果:

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

BTW:你真的不應該建立SQL查詢這個樣子。他們很容易sql注入。改用參數化查詢。這裏是關於這個話題的文章:Using parameterized queries with the SQLDataSource