C#

User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

C#

Post by Jeje »

в MFC для comboBoxa было добавление ItemData в C# я такого не нашол, кто может подсказать есть ли там такое или как заменить, конечно можно масивом заменить но мороки больше.
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

ComboBox.Items.Add(object)
Это вы имеете в ввиду? Как добавлять в бокс кроме строки еще и объект?
Так в C# ТОЛЬКО объекты и добавляются. А текст для item будет из object.ToString() браться.
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

если не трудно конкретней.
допустим у меня есть база данных. id и name.
делаю ComboBox.Items.Add(name)
а как прикрепить id к каждому item'y ??
Seryi
Ник закрыт как дубликат.
Posts: 6238
Joined: 14 Mar 2001 10:01
Location: .MD -> .SI -> .SE -> .AR.US -> .MD

Post by Seryi »

приблизительно так:

class MyClass
{
public int id;
public string name;

string ToString()
{
return name;
}
}
MyClass a;
a.name = "My Element";
a.id = 0;
combo.Items.Add(a);
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Как правило с DB работают через DataSet.
...а мы такой компанией, возьмем, да и припремся к Элис!
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

blanko27 wrote:Как правило с DB работают через DataSet.

Перечитал все сообщения несколько раз. Так и не смог найти ни одного упоминания о DB :pain1:
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

не в db дело я пример привел просто. получается что такое реализовать можно только с помощью классов??
Seryi
а как потом получить точнее, в каком виде она у меня будет??
User avatar
adb
Уже с Приветом
Posts: 9275
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Post by adb »

Gennadiy wrote:Перечитал все сообщения несколько раз. Так и не смог найти ни одного упоминания о DB :pain1:


"допустим у меня есть база данных. id и name."
User avatar
adb
Уже с Приветом
Posts: 9275
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Post by adb »

Jeje wrote:а как потом получить точнее, в каком виде она у меня будет??


В MFC такая фигня только потому, что это тупая обертка от WinAPI. В C# как и в Java вместо класса Item вы можете использовать любой object в котором есть toString метод.
Поэтому WinAPI модель itemName/DWORD здесь заменяется на object.toString()/object. Поэтому берете конкретный item кастуете к своему классу и пользуете поля id, name из примера Серого.
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

все сделал
Object reference not set to an instance of an object
в чем дело не могу понять
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

Seryi wrote:MyClass a;

Тут надо было
MyClass a = new MyClass();
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

извините забыл но после я понял и написал это.
А как теперь получить id ??? сам name я уже получил и записал.
User avatar
senimu
Уже с Приветом
Posts: 1045
Joined: 26 Sep 2003 20:13
Location: ... из леса вестимо

Re: C#

Post by senimu »

Jeje wrote:в MFC для comboBoxa было добавление ItemData в C# я такого не нашол, кто может подсказать есть ли там такое или как заменить, конечно можно масивом заменить но мороки больше.


// Loop through the result set and add the category names to the combo box.
while (drSQL.Read()) {
objListItem = new ListItem(drSQL["CategoryName"].ToString(),Convert.ToInt32(drSQL["CategoryID"]));
cbCategories.Items.Add(objListItem);
}
сухая лиса
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

senimu
Ребята я ведь не добавление прошу показать, а получение ее с combo boxa.
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Jeje wrote:извините забыл но после я понял и написал это.
А как теперь получить id ??? сам name я уже получил и записал.


((MyClass)_myList[i]).ID
Никакой разрухи нет. (с) Проф. Преображенский.
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Gennadiy wrote:
Seryi wrote:MyClass a;

Тут надо было
MyClass a = new MyClass();


А еще ToString должен быть override
Никакой разрухи нет. (с) Проф. Преображенский.
Stick
Уже с Приветом
Posts: 774
Joined: 26 Dec 2000 10:01
Location: Minsk -> Милуоки, США

Post by Stick »

Key words are DisplayMember and ValueMember.
The forum upsets me more and more… :cry:
Stick around!
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

Ребята мне сказали что можно соеденить combo или list с базой данных в properties
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

Stick wrote:Key words are DisplayMember and ValueMember.

Ну и что, будет проще? Прийдется properties писать, и т.д. IMHO стрельба из пушки по воробьям если исходить из исходной задачи.
Если же не объект, а записи из базы, то конечно - самое то.
The forum upsets me more and more… :cry:

:pain1:
Last edited by Gennadiy on 02 Jun 2004 03:03, edited 1 time in total.
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

Jeje wrote:Ребята мне сказали что можно соеденить combo или list с базой данных в properties

Что так прямо с базой данных? Или все же с Table, DataSet или еще с чем?
В этом случае вам надо посмотреть properties: DataSource, DisplayMember и ValueMember.
А вообще надо с самого начало было сказать что конкретно вам надо. Если действительно как можно догадатся читая между строк сделать простой lookup из таблички в базе данных, то для этого в .NET уже многое заготовлено. Не надо изобретать велосипед.
User avatar
senimu
Уже с Приветом
Posts: 1045
Joined: 26 Sep 2003 20:13
Location: ... из леса вестимо

Post by senimu »

Jeje wrote:senimu
Ребята я ведь не добавление прошу показать, а получение ее с combo boxa.


ListBox1.SelectedValue
сухая лиса
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

с класом у меня ничего не вышло. не работает
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Аминь.
...а мы такой компанией, возьмем, да и припремся к Элис!
User avatar
Jeje
Новичок
Posts: 59
Joined: 10 Mar 2004 09:38
Location: Украина->...

Post by Jeje »

я прошу помочь, а не острить
blanko27
Уже с Приветом
Posts: 2264
Joined: 17 Jun 2003 04:41
Location: Just like US

Post by blanko27 »

Тогда попробуйте дать больше информации. Вы знаете, главный закон программиста: ничего не начинаем, пока не получим детальные требования и не определим интерфейсы. Вы все время меняете показания, пока у вас выпытывают условия задачи. :) Если вам нужно привязять ListBox к таблице в базе данных, то это делается с помощью DataBindings.
...а мы такой компанией, возьмем, да и припремся к Элис!

Return to “Вопросы и новости IT”