2

我有一个表 Inventory(ItemId,Name,Size,Price,otherinfo) ,其中 ItemId 是主键,Name,Size,Price 是唯一的。
当我将组合框与名称绑定时,所有重复的名称都会出现,而我希望每个名称只出现一次,大小也会发生同样的情况。

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

4

1 回答 1

8

你可以这样做,(你可能需要稍微调整一下以符合并为你工作)

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
于 2011-01-20T23:43:11.663 回答