2

テーブル Inventory(ItemId,Name,Size,Price,otherinfo) があり、ItemId は主キーで、Name,Size,Price は一意です。
コンボボックスを Name にバインドすると、各名前を一度だけ表示したいときに、繰り返されるすべての名前が表示されます。Size についても同じことが起こります。

データソースにバインドされているコンボボックスに一意の値をロードする方法は?

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();

次に、3 つすべてのドロップダウン リストの選択に基づいて 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 に答える