Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


Создание связи между таблицами в DataSet

В этой статье показано, как создать связь между двумя таблицами в объекте DataSet при работе с базой данной Mysql в автономном режиме.

И так, предположим, что у нас есть база данных Mysql, которая содержит две таблицы: customers (клиенты) и orders (заказы).

Таблица customers содержит две колонки:

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY первичный ключ
name VARCHAR(30) имя клиента

таблица customers

Таблица orders содержит три колонки:

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY первичный ключ
customerID INT NOT NULL внешний ключ
amount DOUBLE цена заказа

таблица orders

Создадим новый проект типа Windows Forms Application.

Добавим на форму три элемента управления DataGridView (dgvCustomers, dgvOrders, dgvCustomerOrders) и кнопку (Button).

Windows Forms

С базой данных Mysql мы будем работать в автономном режиме, поэтому для начала поместим её копию в объект DataSet.

Для этого создадим новый метод InitializeDataSet:

С помощью метода Fill в объекте DataSet создаются две таблицы (Customers и Orders), которые заполняются данными из базы данных Mysql с помощью указанных sql запросов SELECT.

При работе с адаптерами открывать соединение с базой данных не требуется.

С помощью метода Add создаётся новая связь между таблицами: Customers и Orders, которая затем добавляется в коллекцию связей представленную свойством Relations объекта DataSet.


Codeby Security School от Сodeby

Мы запустили свою онлайн школу по информационной безопасности. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного в курсе Paranoid


В данном примере метод InitializeDataSet будет выполняться с помощью нажатия кнопки (button1) расположенной на форме. Поэтому для начала подпишемся на событие Click, после чего в обработчике события button1_Click добавим следующий код:

DataGridView

Теперь у нас есть копия базы данных, и мы можем работать с ней в автономном режиме.

Давайте рассмотрим, как можно получить все заказы, например, для клиента в первой строке элемента управления DatagridView (dgvCustomers) используя ранее созданную связь между двумя таблицами в DataSet.

Создадим ещё один метод GetOrdersForFirstRow:

В методе GetOrdersForFirstRow сначала создаётся таблица CustomerOrderRel с двумя колонками: CustomerID (id клиента) и Amount (сумма заказа), содержимое которой будет выводиться в третий элемент DataGridView (dgvCustomerOrders).

Так как в данном примере содержимое в DataGridView и DataTable будет одинаковым, то получить первую строку можно, и просто напрямую обратившись к таблице Customers, например:

Метод GetChildRows (в данном примере) позволяет получить все дочерние строки для первой строки в таблице Customers, с помощью созданной ранее связи между таблицами.

Осталось вывести полученные заказы для указанного клиента в элемент управления DatagridView (dgvCustomerOrders). Для этого в обработчике события button1_Click добавим буквально одну строку:

вывод данных в DataGridView

Читайте также:


Безопасная сделка с гарантом Сodeby

Гарант является доверенным посредником между Участниками при проведении сделки.​ Услуга сайта «Проведение сделок через Гаранта» предоставляется всем зарегистрированным пользователям codeby.net Подробнее ...


Похожие темы

Чтение и загрузка csv файла на c#... Загрузка csv файла с выводом данных в dataGridView Сегодня хочу показать на простом примере, как выполняется загрузка и чтение CSV файла с помощью яз...
c# Экспорт данных из DataGridView в Excel файл... Как выполнить экспорт данных из DataGridView в Excel файл? В этой статье хочу показать на простом примере, как с помощью языка c# можно выполнить экс...
Как сделать резервную копию серверной базы данных ... Бэкап баз данных MySQL в Linux Если вы используете сервер MySQL с важной информацией, у вас может возникнуть желание периодически делать резервн...
Установка и настройка Apache, PHP, MySQL, phpMyAdm... Если вас интересует, как установить сервер на Windows, то вам сюда "Установка Apache, PHP, MySQL, phpMyAdmin на Windows". Сразу скажу, это будет очен...
Как выделить несколько строк в DataGridView?... Выделение нескольких строк в DataGridView В этой небольшой статье хочу показать на простом примере, как выделить несколько строк в элементе управлени...