2011-01-20 146 views
2

我有一個表庫存(ItemId,Name,Size,Price,otherinfo)其中ItemId是主鍵,Name,Size,Price是唯一的。
當我用名稱綁定組合框時,所有重複名稱都會出現,而我希望每個名稱只出現一次,Size也會發生同樣的情況。數據綁定組合框中不同的值組合框

如何加載綁定到數據源的組合框中的唯一值?

+0

如果你想它綁定到唯一的名稱,那麼你就不能綁定到ITEMID 。據我所知你可以有像ID = 1,名稱= A; ID = 2,Name = A,這意味着這些記錄已經是唯一的,因爲它們的密鑰是不同的。如果您只綁定到名稱,您如何知道用戶是否從ID 1或ID 2中選擇了名稱A?我希望這是有道理的。 – Divi 2011-01-20 23:30:33

+0

是的,我想綁定到名稱。我還有兩個大小和價格的組合框。因此,如果用戶選擇籃子大,20將返回一個唯一的ItemId。 – SMUsamaShah 2011-01-20 23:33:49

回答

7

你可以這樣做,(你可能不得不調整它有點complie併爲你工作)

ddlName.DataSource = items.Select(item=>item.Name).Distinct().ToList(); 
ddlName.DataBind(); 

ddlSize.DataSource = items.Select(item=>item.Size).Distinct().ToList(); 
ddlSize.DataBind(); 

ddlPrice.DataSource = items.Select(item=>item.Price).Distinct().ToList(); 
ddlPrice.DataBind(); 

,然後找到基於三個下拉列表中選擇條目標識。

這是C#並假設你有LINQ

希望這有助於。

Edit--(如果沒有LINQ)

IList<string> names = new List<string>(); 

foreach (Item item in Items) 
    if (!names.Contains(item.Name)) 
     names.Add(name); 

ddlName.DataSource = names; 
ddlName.DataBind(); 

//Do similar for price and size. 

編輯(使用SQL命令)

select distinct Name from Item 
select distinct Size from Item 
select distinct Price from Item