2011-01-20 2 views
2

У меня есть таблица инвентаризации (ItemId, Name, Size, Price, otherinfo), где ItemId является первичным ключом, а Name, Size, Price уникальны.
Когда я свяжу combobox с Name, все повторяющиеся имена появляются, когда я хочу, чтобы каждое имя появлялось только один раз, то же самое происходит с Size.Значимые значения в привязанных к данным combobox

Как загрузить уникальные значения в combobox, привязанные к источнику данных?

+0

Если вы хотите, чтобы связываться с уникальными именами, то вы не можете не связываться с Itemid , Насколько я понимаю, у вас могут быть такие данные, как ID = 1, Name = A; ID = 2, Name = A, что означает, что эти записи уже уникальны, поскольку их ключи разные. И если вы связываетесь только с именами, откуда вы знаете, выбрал ли пользователь имя А из ID 1 или ID 2? Я надеюсь, что в этом есть смысл. – Divi

+0

Да, я хочу привязываться к имени. У меня есть два других comboboxes для размера и цены. Чтобы пользователь выбрал корзину, большой, 20, он вернет уникальный ItemId. – SMUsamaShah

+0

У вас есть лучшее предложение для этого? Я хочу, чтобы пользователь выбирал имя, размер и цену и получал уникальный ItemId в результате – SMUsamaShah

ответ

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

Надеется, что это помогает.

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 
+0

Что делать, если у меня нет LINQ? Я делаю это в .net 2.0. Что такое «элементы» в этом коде? – SMUsamaShah

+0

У меня есть набор данных и таблицы для получения значений или самого sql – SMUsamaShah

+0

См. Изменения – Divi