数据绑定组合框中的不同值

时间:2011-01-20 23:15:32

标签: c# data-binding distinct-values

我有一个表库存(ItemId,Name,Size,Price,otherinfo),其中ItemId是主键,名称,尺寸,价格是唯一的。
当我使用Name绑定组合框时,所有重复的名称都会出现,而我希望每个名称只出现一次,同样会出现大小。

如何加载绑定到数据源的组合框中的唯一值?

1 个答案:

答案 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