Путь разработчика    

Отображать данные master-detail в DataGrid в C#

Рекомендуем: Эксклюзивный десантный Гелендваген продают по цене нового Porsche Cayenne
eda2480d

Во время разработки я добавил проект Database.mdb в проект, установил его свойство «Build Action» в «Содержимое» и установил его свойство «Копировать в выходной каталог» в «Копировать, если новый». Таким образом, база данных копируется в исполняемый каталог, поэтому программе легко найти его во время выполнения.

При запуске программы он выполняет следующий код для загрузки данных.

Python

Этот код сначала объявляет два объекта OleDbDataAdapter для загрузки данных из таблиц Адреса и TestScores базы данных. Он также объявляет DataSet для хранения данных, когда он загружен в память.

Обработчик события Load формы загружает данные. Сначала он определяет строку подключения для подключения к базе данных. Затем он использует его для создания двух адаптеров данных. Их конструкторы принимают в качестве параметров SQL-запросы, используемые для получения данных и строки подключения.

Далее код создает новый DataSet и использует адаптеры данных для копирования данных из базы данных в DataSet. Строки Адреса и TestScores указывают имена таблиц, которые адаптеры данных должны указывать на данные внутри DataSet.

Затем программа определяет отношение master-detail (или parent / child) между двумя таблицами в DataSet. Первый параметр конструктора - это имя, которое должно иметь отношение. Другие два параметра дают столбцы в основных и подробных таблицах, которые должны быть связаны. После создания отношения код добавляет его в коллекцию DataSet Relations.

Затем программа определяет отношение master-detail (или parent / child) между двумя таблицами в DataSet. Первый параметр конструктора - это имя, которое должно иметь отношение. Другие два параметра дают столбцы в основных и подробных таблицах, которые должны быть связаны. После создания отношения код добавляет его в коллекцию DataSet Relations.

...

DataGrid на самом деле довольно умный элемент управления. Сначала он отображает две таблицы DataSet. Вы можете нажать на один, чтобы развернуть его. На картинке вверху этого сообщения DataGrid отображается таблица Addresses. Связь позволяет управляющему знать, что это основная запись, поэтому она отображает знак + рядом с каждой записью. Если вы нажмете знак «+», элемент управления отобразит ссылку на соответствующие записи этой записи в дочерней таблице TestScores. Нажмите эту ссылку, чтобы просмотреть эти записи.

Маленькие изображения в верхнем правом углу элемента управления DataGrid позволяют перемещаться по DataSet. Элемент DataGrid также позволяет редактировать данные.

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

Python

Этот код сначала создает два объекта OleDbCommandBuilder, по одному для каждой таблицы. Эти объекты автоматически генерируют инструкции SQL INSERT, UPDATE и DELETE для сохранения изменений данных. Команды связаны с DataAdapters, переданными в конструкторы сборщиков.

Этот код сначала создает два объекта OleDbCommandBuilder, по одному для каждой таблицы. Эти объекты автоматически генерируют инструкции SQL INSERT, UPDATE и DELETE для сохранения изменений данных. Команды связаны с DataAdapters, переданными в конструкторы сборщиков.

...

Источник: http://csharphelper.com/blog/2016/02/display-masterdetail-data-in-a-datagrid-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:


Сортировка частично числовых элементов в ComboBox или ListBox в C#

Пример Использование пользовательского порядка сортировки для элементов ListBox или ComboBox в C# показывает, как сортировать числовые значения. В этом при...

21 06 2021 17:31:35

Печатать звезды в C#

В этом примере показано, как вы можете печатать звезды с определенными размерами на C#. Недавно кто-то связался со мной, спрашивая, знаю ли я о программе,...

20 06 2021 17:21:12

Почему Java не поддерживает указатели?

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

19 06 2021 2:24:36

Сделайте CAPTCHA изображения в C#

CAPTCHA (полностью автоматизированный публичный тест Тьюринга, чтобы рассказать о компьютерах и людях) - это искаженные изображения слов, которые некоторые...

18 06 2021 14:13:43

Сериализация и десериализация данных в C#

Что такое сериализация и десериализация? Сериализация - это механизм преобразования объекта в поток байтов или текста. Deserialization берет ряд байтов или...

17 06 2021 13:59:48

Список местоположений специальных папок в C#

Перечисление System.Environment класса SpecialFolders перечисляет специальные папки, такие как System, Cookies, Desktop и т. д. Метод класса GetFolderPath...

16 06 2021 9:42:30

Закрыть всплывающие окна Mozilla Firefox в C#

Некоторые средства браузера пытаются заблокировать всплывающие окна рекламы, но в последнее время некоторые из них пробираются через мою систему, поэтому я...

15 06 2021 19:29:44

Рассчитайте стоимость ежемесячных инвестиций в C#

Магия инвестиций с сложным интересом заключается в том, что со временем вы получаете интерес к интересам. За каждый месяц эта программа рассчитывает процен...

14 06 2021 20:37:38

Почему Java не является чисто объектно-ориентированным языком?

Язык оцифрованного программирования (OOP) использует метод объектно-ориентированного программирования, который связывает связанные данные и функции с объек...

13 06 2021 4:23:10

Перетаскивание изображений при отображении предварительного просмотра в C#

Пример Перетаскивание изображений в C# объясняет, как для перетаскивания изображений. См. Этот пример для основных идей. ( Обратите особое внимание на второ...

12 06 2021 22:24:50

Класс Java HashSet

Класс HashSet расширяет AbstractSet и реализует заданный интерфейс. Набор представляет собой набор, который не содержит повторяющихся элементов и элементы...

11 06 2021 17:32:58

Что такое классы-оболочки в Java

Как сказано в названии, класс-оболочка обертывает (охватывает) вокруг типа данных и дает ему вид объекта. Они используются для преобразования любого примит...

10 06 2021 5:48:23

Что такое перечисления Java и почему они полезны?

Перечисление аналогично любому другому классу Java с предопределенным набором экземпляров. Это, в основном, тип данных, который позволяет описывать каждый...

09 06 2021 11:49:19

C# 6.0. Справочник. Полное описание языка (Джозеф Албахари, Бен Албахари)

Данное руководство, ставшее бестселлером, позволяет получить точные ответы практически на любые вопросы по C# 6.0, CLR и основным сборкам .NET Framework. П...

08 06 2021 9:31:36

Преобразование типа Python

Python имеет пять стандартных типов данных. Иногда необходимо преобразовывать значения из одного типа в другой. Python определяет функции преобразования ти...

07 06 2021 1:12:21

События флеш-кликов в C#

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

06 06 2021 13:23:24

Как связаны методы наследования и переопределения?

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

05 06 2021 23:32:52

Как найти даты в цифрах Pi в C#

Пример Поиск паттернов внутри pi в C# ищет шаблоны внутри цифры Pi. Вы можете использовать этот пример для поиска таких дат, как 4/1. В этом примере опреде...

04 06 2021 19:20:33

Сделайте простую гистограмму в C#

В этом примере показана гистограмма, показывающая распределение случайных значений, которые моделируют прокатку двух 6-сторонних кубиков. Во время разработ...

03 06 2021 1:53:32

Связать массивы и списки в C#

Один из способов отображения элементов в массиве в ListBox состоит в том, чтобы перебирать элементы и добавлять их в ListBox по одному, но есть более прост...

02 06 2021 4:30:10

Поверните вокруг точки, отличной от начала координат в C#

Вы можете использовать объект Matrix для поворота, масштабирования, перевода или искажения чертежа. Его метод RotateAt добавляет поворот вокруг определенно...

01 06 2021 10:12:35

Получить рабочую область экрана в C#

Рабочая область является частью экрана, который обычно может занимать приложение. Эта область может находиться в разных частях экрана в зависимости от разм...

31 05 2021 14:27:29

Отправлять распечатку непосредственно на конкретный принтер в C#

Код устанавливает имя принтера, а затем вызывает метод PrintDocument объекта Print для немедленной отправки распечатки на этот принтер. Источник: http://cs...

30 05 2021 12:16:11

Как создать выпадающие списки в JavaScript

В раскрывающемся списке содержится список текста, который позволяет пользователю сайта выбирать из параметров. HTML Выберите опции Источник Получить выбран...

29 05 2021 5:35:57

Базовые типы данных Java

В Java, объектах и примитивах есть две основные категории данных. Все члены данных и локальные переменные должны иметь тип данных, который является либо пр...

28 05 2021 4:17:24

Языки программирования для начинающих: с чего лучше начать?

Какие языки программирования подходят для начинающих? С какого лучше начать? В наше время программирование стало одной из самых востребовательных и высокооплачиваемых...

27 05 2021 21:48:36

Как скопировать и вставить объекты в буфер обмена в C#

Очень легко скопировать и вставить объекты в буфер обмена на C#. Единственный реальный трюк - украсить класс, который вы хотите использовать с атрибутом Se...

26 05 2021 9:29:38

Класс FileReader в Java

FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...

25 05 2021 19:19:16

Нарисуйте гистограмму с подсказками в C#

Пример Нарисуйте простую гистограмму в C# , объясните, как нарисовать простую гистограмму. Когда вы нажимаете на панель, эта программа отображает окно сооб...

24 05 2021 1:11:55

Ошибка компиляции "Can not Find Symbol" в Java

Ошибки « Не удается найти символ» обычно возникают, когда вы пытаетесь ссылаться на необъявленную переменную в коде. Ошибка « Не удается найти символ» означа...

23 05 2021 1:59:44

Введение в потоки Thread в Java

В чем разница между Reader и InputStream в Java Процесс представляет собой экземпляр выполняемой компьютерной программы. Процесс может выполняться процессо...

22 05 2021 1:26:58

Каковы недостатки использования InnerHTML в JavaScript?

Свойство innerHTML чрезвычайно популярно, поскольку оно обеспечивает простой способ полностью заменить содержимое элемента HTML. Другой способ сделать это...

21 05 2021 8:36:15

Заменить текст, соответствующий шаблону в C#

В этом примере используется следующий код для замены текста, соответствующего шаблону в строке. Этот код создает объект Regex, передавая его конструктору ш...

20 05 2021 8:44:27

Добавление метода расширения в класс Graphics в C#

По какой-то странной причине метод DrawRectangle класса Graphics не может принимать параметр RectangleF в качестве параметра. Он может принимать значения R...

19 05 2021 7:59:35

Новая большая книга CSS (Дэвид Макфарланд)

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

18 05 2021 13:14:33

Языки программирования для создания игр

Какие существуют языки программирования для создания игр? Одной из развитых и востребовательных в современном обществе сфер программирования является разработка игр и развлекательных приложений....

17 05 2021 14:21:44

Основы программирования в Delphi 7 (Н. Б.Культин)

Книга является руководством по программированию в среде Delphi 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до орг...

16 05 2021 23:40:57

Есть ли способ убить поток в Python?

В Python вы просто не можете убить Thread. Убийство нити устраняет любые гарантии, которые пытаются установить / окончательно блокировать, чтобы вы могли з...

15 05 2021 10:18:52

Как рассчитать разницу дат в Java

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

14 05 2021 2:23:40

Отображение значимых цифр в C#

Число значащих цифр в числе - это число цифр, которые содержат значимую информацию. К ним относятся все отображаемые цифры, кроме начальных и конечных нуле...

13 05 2021 14:14:24

Обработка исключений на Python

Что такое исключение? Исключение является нежелательным событием , которое прерывает нормальный поток программы. Это может быть ошибка программирования, пы...

12 05 2021 17:43:57

Как сделать кнопки панели инструментов похожими на переключатели в C#

Иногда бывает полезно сделать кнопки панели инструментов, как радиокнопки, чтобы пользователь мог выбрать только один из набора кнопок.  В этом примере вы м...

11 05 2021 18:23:41

Получить информацию о формате даты для локали компьютера в C#

Объект System.Globalization namespace's InstalledUICulture предоставляет множество статических методов, предоставляющих информацию о численном, дате и врем...

10 05 2021 3:29:58

Отображать системные метрические значения с описаниями на C#

Пример Получить системные показатели на C# показывает, как получить систему метрики, но краткие имена метрик затрудняют понимание результатов. В этом приме...

09 05 2021 18:34:35

Сделайте диалог выбора, в котором используется цветное колесо в C#

Пример Нарисуйте цветное колесо с альфа-и насыщенными значениями в C# позволяет пользователю выбрать цвет на цветном колесе. В этом примере используется эт...

08 05 2021 23:33:14

Что такое ключевое слово instanceof в Java?

Java instanceof - это ключевое слово. Это двоичный оператор, используемый для проверки, является ли объект (экземпляр) подтипом данного типа. Он возвращает...

07 05 2021 17:30:11

Метод Java String concat()

Конкатенация строк - это процесс объединения двух или более маленьких строк для создания большей строки. В Java вы можете комбинировать строку несколькими...

06 05 2021 21:53:31

Сортировка слов по количеству букв в C#

В этом примере сортируются слова по количеству букв. Он подсчитывает количество отдельных букв в списке слов и отображает слова и их подсчеты, отсортирован...

05 05 2021 20:37:38

Используйте «округление банкира» и «нормальное округление» в C#

По умолчанию метод Math.Round использует «округление банкира». При округлении банкира число с конечной цифрой 5 округляется до ближайшего четного числа, а...

04 05 2021 6:19:24

Расположите форму в нижнем правом углу экрана в C#

Свойство Screen.PrimaryScreen.WorkingArea дает размер рабочей области основного экрана. ( Для получения дополнительной информации см. Получить рабочую облас...

03 05 2021 9:36:31

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

И сказал Великий Программист:
«После трёх дней без программирования жизнь теряет смысл»