我有一个表库存(ItemId,Name,Size,Price,otherinfo),其中ItemId是主键,名称,尺寸,价格是唯一的。
当我使用Name绑定组合框时,所有重复的名称都会出现,而我希望每个名称只出现一次,同样会出现大小。
如何加载绑定到数据源的组合框中的唯一值?
答案 0 :(得分:7)
你可以这样做,(你可能需要调整一下才能编译并为你工作)
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();
然后根据所有三个下拉列表的选择找到itemID。
这是C#并假设你有LINQ
希望这有帮助。
编辑 - (如果没有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