Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для chaosfall
4 / 1 / 2
Регистрация: 04.12.2010
Сообщений: 65

При выборе строки в Таблице1 в Таблицу2 подтягиваются связанные записи

10.07.2011, 13:04. Показов 1664. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 3 таблицы:
1) Товар (ItemID, Name, Price)
2) Клиенты (CustomerID, Surname, Phone)
3) Промежуточная таблица для реализации связи многие ко многим (ItemID, CustomerID).

На форму добавила 2 DataGridView (1. для таблицы Товар, 2. для таблицы Клиенты).

Задача состоит в том, чтобы при выборе строки в первой таблице с Товарами, во второй отображались все Клиенты, заинтересованные в данном товаре - т.е. они должны фильтроваться через промежуточную таблицу:

SQL
1
2
3
4
SELECT * FROM Clients c
JOIN Orders o ON c.customer_id = o.customer_id
JOIN Goods g ON g.item_id = o.item_id
WHERE g.item_id = <item_id из выбранной ячейки в датагриде>
Пока реализовала вывод содержимого 2ух таблиц в датагриды (без фильтрации) + получаю айди нужной ячейки (событие dataGridView1_SelectionChanged).

В каком направлении дальше двигаться?
Как я понимаю, фильтровать нужно через bindingSource.Filter()? У меня их 4..
Нужно ли создавать отдельный DataGridView для промежуточной таблицы?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2011, 13:04
Ответы с готовыми решениями:

При изменении ячейки в таблице1, в таблицу2 сохранять это значение
как сделать так, чтобы при изменении ячейки в таблице1, в таблицу2 сохранялось это значение, но при этом (желательно) не нажимать...

Вывести связанные записи из второй таблицы при выборе записи в первой
Есть две таблицы, в одной пишется имя и фамилия, а в другой телефоны и их может быть несколько, например строка - 1 первый телефон, строка...

При выборе значения в первом списке, в остальных оставить только с ним связанные данные
Доброго времени суток. столкнулся с проблемой: на странице имеется несколько выпадающих списков. как сделать, чтобы при выборе в первом...

2
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
10.07.2011, 13:35
Лучший ответ Сообщение было отмечено chaosfall как решение

Решение

В каком направлении дальше двигаться?
Нужно просто связать таблицы. Не надо делать всяких громоздких запросов и фильтраций.
C#
1
DataSet.Relations
1
 Аватар для chaosfall
4 / 1 / 2
Регистрация: 04.12.2010
Сообщений: 65
10.07.2011, 14:33  [ТС]
Relations уже должны быть, т.к. реализовано на основе типизированного DataSet.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
  this.relationFK_Order_Goods = this.Relations["FK_Order_Goods"];
  this.relationFK_Order_Customer = this.Relations["FK_Order_Customer"];
 
 
 
            this.relationFK_Order_Goods = new global::System.Data.DataRelation("FK_Order_Goods", new global::System.Data.DataColumn[] {
                        this.tableGoods.ItemIDColumn}, new global::System.Data.DataColumn[] {
                        this.tableOrder.ItemIDColumn}, false);
            this.Relations.Add(this.relationFK_Order_Goods);
            this.relationFK_Order_Customer = new global::System.Data.DataRelation("FK_Order_Customer", new global::System.Data.DataColumn[] {
                        this.tableCustomer.CustomerIDColumn}, new global::System.Data.DataColumn[] {
                        this.tableOrder.CustomerIDColumn}, false);
            this.Relations.Add(this.relationFK_Order_Customer);
Проблема в том, что сейчас получается отображать только соответствующие записи из связанной промежуточной таблицы (Orders), если ее bindingsource указать в источниках для датагрида - и все ок подтягивается.
Например, в первой таблице выбираем запись с товаром - во втором датагриде подтягивается айдишник покупателя.. нужно чтобы там была вся инфа о покупателе (из таблицы Customer)

Если в источниках указывать в bingingsource таблицу Customer, то отображаются все записи и они не меняются...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.07.2011, 14:33
Помогаю со студенческими работами здесь

Триггер на перенос строки из таблицы1 в таблицу2
Подскажите как создать триггер на перенос строки из таблицы1 в таблицу2 как только в таблице1 обновляется колона status на текст...

Нужно, чтобы при выборе элемента в одном DataGridView отображались связанные данные в другом DataGridView
Есть две связанные таблицы и соответственно два DataGridView, нужно, чтобы при выборе элемента в одном DataGridView отображались связанные...

Можно ли добавлять записи в связанные таблицы при помощи SQL-запроса
Я столкнулся с таким вопросом можно ли добавлять записи в связанные таблицы при помощи SQL-запроса... ? Как это сделать это мышью я...

При удалении учащихся из журнала удаляет все связанные записи с ним в остальных таблицах
При удалении учащихся из журнала удаляет все связанные записи с ним в остальных таблицах. В задании написано что это должен быть триггер....

При выборе записи в таблице заполнять editы
имеется на форме edit для занесения данных в таблицу. как сделать так чтоб при выборе записи в таблице строчки в editax заполнились


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru