![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Здравствуйте!
Сделал так:
Хочу чтобы в ComboBox отображалось значения 3х столбцов из бд НО при этом каждому значению в ComboBox соответствовал его id из БД(не хочется после выбора в ComboBox запросом искать в БД значение id). Как это сделать? |
|||
|
||||
-Mikle- |
|
||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 1 Всего: 59 |
Не понял в чем вопрос. Ты же делаешь
-------------------- Если тебе плюют в спину, значит ты впереди... |
||||
|
|||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Но не отобразит все 3 столбца в ComboBox, а только один "Firstname". А вот это выведет все 3 столбца но без привязки к id:
а я хочу скомбинировать 3 столбца и привязка к id))) |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
можно попробовать сделать вычисляемый столбец(соеденить в нем значения из трех нужных) и его уже отобразить в ComboBox, он будет привязан по Id. как мне кажется...
Это сообщение отредактировал(а) Экскалупатор - 14.4.2009, 16:29 |
|||
|
||||
-Mikle- |
|
||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 1 Всего: 59 |
Так и надо сделать, либо в SQL запросе сразу. SQL:
Вычисляемый столбец:
-------------------- Если тебе плюют в спину, значит ты впереди... |
||||
|
|||||
qweasd |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Я так понимаю прийдется выбирать, а потом искать соответствующий id ((((((((((((((( Может в ComboBox можно както скрыть часть введенного текста Это сообщение отредактировал(а) qweasd - 15.4.2009, 13:19 |
||||
|
|||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Можно просто переопределить ToString(). Правда, строчки
нужно убрать: нам нужно, чтобы баиндился сам объект. А вообще, используйте WPF: там подобные вещи делаются гораздо удобнее. |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
не совсем понял что вы имеете ввиду. если вы сделаете вычисляемый столбец в таблице, он будет работать так же как и любой другой столбец этой таблицы(не важно по порядку или нет идет Id), т.е. и по Id сортироваться тоже будет и если вы делаете привязку его по Id то все будет работать так же как и с нормальным столбцом(любым из этой таблицы), просто в этом столбце, будут содержаться объединенные данные из нескольких столбцов. или я вас все таки не правильно понял? Это сообщение отредактировал(а) Экскалупатор - 15.4.2009, 13:19 |
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Что такое "вычисляемый столбец"
Добавлено через 6 секунд Что такое "вычисляемый столбец"? Добавлено через 10 секунд Что такое "вычисляемый столбец"? |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
qweasd, вычисляемые столбцы - не лучшее решение. Запросы в базу в общем случае не должны зависеть от слоя представления. Если у Вас есть таблица invent.fullname, и есть запрос, который возвращает значения из нее, нужно воспользоваться именно им (ну или создать отдельный, который возвращает меньшее количество атрибутов), но не нужно создавать запросы в угоду отображению: это сделает DAL уродливым и неудобным. Если Вам не хватает возможностей отображения WinForms, переходите на WPF. Если нет желания переходить на WPF, считывайте значения в какой-нибудь класс с переопределенным ToString (в WinForms ComboBox отображает ToString() забаинденного объекта).
|
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
С помощью WPF - возможна такая реализация?
|
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 3 Всего: 24 |
qweasd, если вам к примеру нужно отобразить значения из нескольких столбцов, и работать с этими значениями как с одним столбцом, то вы создаете запрос к базе(ну или прямо в DataSet) и создаете как бы виртуальный столбец, в котором содержаться нужные вам данные, и работаете уже с ними(это делается для того что бы не выбирать по очереди нужные данные, а сразу получить объединенные данные, которые нужны вам).
|
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
- это решение основано на том что я в БД создаю еще одну таблицу. Павельно я понял? |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Да. ComboBox.ItemTemplate Кстати, если уж и использовать вычисляемые столбцы, то делать это стоит на клиенте, создав в DataTable дополнительный столбец и задав ему Expression, который конкатенировал бы значения 3-х столбцов. P. S. Реализация тривиального DAL через DataSet/DataTable на современном этапе развития .NET меня несколько выводит из себя. Не обращайте внимания: я могу быть немного неадекватен ![]() |
|||
|
||||
qweasd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Ага спасибо. Сейчас попробую.
- оо вот так вот получилось то что хотел))) САСИБО. Это оптимальный способ или есть чтото лучше? Это сообщение отредактировал(а) qweasd - 15.4.2009, 15:47 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |