- •Лабораторная работа №6. Доступ к данным с помощью технологии ado.Net
- •1. Цель работы
- •2. Сведения из теории
- •2.1. Типы пространства имен System.Data
- •2.5. Возможности класса DataSet
- •2.6. Класс DataRelation
- •3. Пример выполнения работы
- •3.1. Визуальное проектирование диалогового окна
- •3.2. Проектирование программного кода
- •3.2.1. Обновление содержимого главного окна приложения
- •3.2.2. Добавление нового контакта
- •3.2.3. Добавление номера телефона
- •3.2.4. Выбор записей в таблицах
- •3.2.5. Редактирование записей таблицы Contacts
- •3.2.6. Изменение номера телефона
- •3.2.7. Удаление записей таблицы Contacts
- •If (MessageBox.Show("Вы действительно хотите удалить
- •3.2.8. Удаление номера телефона
- •If (MessageBox.Show("Вы действительно хотите удалить
- •3.2.9. Фильтрация данных
- •4. Задание для самостоятельной работы
2.5. Возможности класса DataSet
При работе с базами данных чаще всего таблицы используются не сам по себе, а во взаимодействии с другими таблицами. В ADO.NET возможности работы с наборами таблиц, связанными друг с другом, предоставляет класс DataSet.
Объект DataSet – это создаваемый в оперативной памяти набор таблиц (объектов DataTable), связанных между собой отношениями и снабженными средствами проверки целостности данных (для них в DataSet предусмотрены свои объекты). Иерархия классов, входящих в DataSet, представлена на рисунке 8.2.
Рис. 8.2. Внутренние коллекции DataSet
Основные свойства класса DataSet представлены в таблице:
Свойство |
Описание |
CaseSensitive |
Определяет, будет ли во время операций по сравнению текстовых строк в объектах DataTable учитываться регистр букв |
DataSetName |
Позволяет получить или задать имя для данного объекта DataSet. Обычно значение этого свойства задается как параметр, передаваемый конструктору |
EnforceConstraints |
Позволяет включить или отключить проверку соответствия ограничениям при выполнении операций обновления данных в DataSet |
HasErrors |
Позволяет получить значение, определяющее наличие ошибок в DataSet (т.е. ошибок в любой строке любой таблицы DataSet) |
Relations |
Позволяет обратиться к коллекции отношений между таблицами DataSet |
Tables |
Позволяет получить доступ к коллекции таблиц DataSet |
Многие методы DataSet дублируют возможности, которые обеспечиваются свойствами. Самые важные методы DataSet представлены в таблице:
Метод |
Описание |
AcceptChanges() |
Позволяет сохранить в DataSet все изменения, произведенные с момента последнего вызова этого метода |
Clear() |
Полная очистка DataSet – удаляются все строки из всех таблиц |
Clone() |
Клонирует структуру DataSet, включая структуру таблиц, отношения между таблицами и ограничения |
Copy() |
Копирует DataSet (структуру вместе с данными) |
GetChanges() |
Возвращает копию DataSet, которая содержит все изменения, внесенные в оригинальный DataSet с момента последнего вызова для него метода AcceptChanges() |
GetChildRelations() |
Возвращает коллекцию подчиненных отношений для указанной таблицы |
GetParentRelations() |
Возвращает коллекцию родительских отношений для указанной таблицы |
HasChanges() |
Этот перегруженный метод позволяет получить информацию об изменениях, внесенных в DataSet (отдельно по вставленным, удаленным и измененным строкам) |
Merge() |
Этот перегруженный метод позволяет производить слияние разных объектов DataSet |
ReadXml() ReadXmlSchema() |
Позволяют считывать данные в формате XML в DataSet из потока (файла, оперативной памяти, сетевого ресурса) |
RejectChanges() |
Отменяет все изменения , внесенные в DataSet с момента его создания или последнего вызова метода AcceptChanges() |
WriteXml() WriteXmlSchema() |
Позволяют записывать данные в формате XML из DataSet в поток |