Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Данные из 2 таблиц в одном DataGridView


Автор: maksar 17.1.2007, 11:05
Есть dataset в котором находятся 2 связаные таблицы с полями id,idcat,name и idcat,description.
Как отобразить в datagridview  поля из первой таблицы + поле description по связи idcat-idcat из второй.
примерно вот так id,idcat,name,description.

Автор: mr.DUDA 17.1.2007, 11:39
А в дизайнере нельзя добавить колонку на другую таблицу ? Т.е. прямого решения не существует ?

Автор: maksar 17.1.2007, 13:09
Я новичок в НЕТ и в частности АДО.НЕТ , 
Создавал датасет програмно, и заполнял его тоже програмно , через свойство datasource
А как можно через дизайнер накидать колонок из разных таблиц и связать их по связям?

Автор: xess 9.3.2007, 20:32
кстати, тоже интересует подобный вопрос.
пробывал в дизайнере добавлять колонку на вторую таблицу, не работает  smile 

а суть в следущем:
имеется родительская таблица (id_item, name) и дочерняя (id_item, A, B, C, ...).
как отобразить в datagridview информацию "A, B, C, ..., name", где name из родительской таблице связана с дочерней через id_item?

Автор: mr.DUDA 9.3.2007, 23:03
Скорее всего, в базе данных должна быть связь по таблицам, в первую очередь дизайнер туда смотрит. Ну а если нет, то можно программно добавить эту связь туда. Если интересно как - кину пример как.

Автор: xess 10.3.2007, 07:27
Цитата(mr.DUDA @ 9.3.2007,  23:03)
Скорее всего, в базе данных должна быть связь по таблицам, в первую очередь дизайнер туда смотрит. Ну а если нет, то можно программно добавить эту связь туда. Если интересно как - кину пример как.

я создавал dataset, в нем устанавливал через дизайнер связи между таблицами.
потом создаю datagridview, в нем в качестве DataSource  указывал свой dataset. Потом перепробывал несколько вариантов и не один не привел к цели :( 
А именно:
1) Пробывал в качестве DataMember у datagridview указывать дочернюю таблицу. Автоматом в дизайнере datagridview добавлялись все колонки из этой таблицы. Потом пробывал в дизайнере добавить еще колонку, чтоб в ней отображались связанные данные из родительской таблице, но вот беда, в дизайнере вообще не было родительской таблицы. Видать из-за того, что я в DataMember прямо указал какую таблицу использовать.
2) Пробывал оставлять DataMember пустым. Но тогда в дизайнере можно было добавлять только unbound colomn. Хотя при этом выбирать можно было данные из всех таблиц. И даже связи в дизайнере отображались (правда только от родительской таблице к дочерней, а мне нужно чтоб отображались данные из дочерней таблице + одно поле из родительской соответсвующей записи). Вобщем в итоге все так и не заработало.

Если знаешь, приведи примеры как можно решить задачу (в дизайнере или вручную).

Автор: mr.DUDA 10.3.2007, 11:38
Цитата(xess @  10.3.2007,  06:27 Найти цитируемый пост)
 а мне нужно чтоб отображались данные из дочерней таблице + одно поле из родительской соответсвующей записи). Вобщем в итоге все так и не заработало.

Тогда ставь DataMember на дочернюю (как в пункте 1), а чтобы светить колонку из родительской таблицы - добавь в дизайнере датасета новое поле в дочернюю таблицу, и в свойстве Expression укажи:

Код
Parent.имя_поля_в_родительской_таблице


Потом дело техники - добавляем её в датагрид, т.к. колонка находится в дочерней таблице и доступна для выбора.

Автор: xess 10.3.2007, 16:01
2mr.DUDA,
получилось, спасибо! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)