- •Определение базы данных.
- •2) Таблица, как основной объект бд.
- •3) Представление.
- •4) Хранимые процедуры.
- •5) Типы данных.
- •Лекция №4. 24.02.12
- •Оператор create table
- •Использование индексов
- •Оператор alter
- •Оператор drop
- •Ограничение столбца
- •Ограничение домена
- •Лекция №5 02.03.12
- •Ограничение сущностей
- •Ограничение ссылочной целостности
- •Представление
- •Хранимые процедуры
- •Создание и изменени хранимой процедуры
- •Виды хранимых процедур
- •Лекция №6 11.03.12
- •Триггеры
- •Лекция №7 16.03.12
- •Инструменты
- •Компоненты
- •Компонент ibDatabase
- •Механизм транзакций
- •Лекция №6 23.03.12
- •Компонент DataSource
- •Компоненты визуализации
- •Лекция 7 30.03.12 Сортировка набора данных в компоненте ibTable
- •Сортировка набора данных ibQuery
- •Фильтрация наборов данных
- •Фильтрация запиcей одной таблицы
- •Фильтрация записей, связанных по внешнему ключу таблицы
- •Механизмы поиска в наборах данных
- •Лекция 8 06.04.12
- •Создание отчета при помощи мастера
- •Создание отчета в режиме конструктора
- •Лекция 9 13.04.12 Базовые классы для работы с данными.
- •Пространство имен ado .Net
- •Типы пространства имен System.Data
- •Использование классов DataColumn, DataTable, DataRow Класс DataColumn
- •Лекция 9 20.04.12
- •Класс DataTable
- •Класс DataRow
- •Лекция 27 апреля Работа со свойством ItemArray
- •Использование классов DataSet и DataRelation
Класс DataRow
Коллекция объектов DataRow определяет данные, которые хранятся в таблице. При помощи членов этого класса мы можем производить операции вставки , изменения и удаления строк из таблицы, а так же сравнивать значения, которые содержатся в строках.
Методы класса DataRow:
AcceptChanges() – заставляет объект строки принять изменения;
BeginEdit() – начинается редактирование строки;
CancelEdit() – отменяет редактирование строки;
RejectChanges() – отменяет изменении строки;
Delete() – удаляет строку;
EndEdit() – завершает работу в режиме редактирования данных;
InNull() – метод возвращает «истину», если указанная в качестве параметра колонка равна Null;
SetNull() – изменить значение колонки на нулевое.
Пример: Создадим строку для столбца, созданного выше
DataRow dr = dt.NewRow();
dr[“Make”] = “BMW”;
dr[“Color”] = “Зеленый”;
dt.Rows.Add(dr);
Работа со свойством DataRow.RowState
Главное назначение этого свойства – определять в процессе выполнения программы в каком состоянии находятся выбранные нами строки в таблице: были ли они изменены, только что вставлены и т.д. Для свойства DataRowStat используется значение из перечисления DataRowStat:
Deleted – строка была изменена при помощи метода DataRow.Delete();
Detached – строка была создана, но она еще не является частью DataRowCollection;
Modified – строка была изменена, но метод AcceptChange() еще не вызывался;
New/Added – строка была добавлена в коллекцию DataRowCollection, но метод AcceptChange() еще не вызывался;
Unchanged – строка не была измена с момента последнего вызова метода AcceptChange().
Пример:
DataRow dr = dt.NewRow();
Console.WriteLine(“1-”+dr.RowState.ToString()); // выведет Detached
dt.Rows.Add(dr);
Console.WriteLine(“1-”+dr.RowState.ToString());// выведет Added/New
dt.AcceptChanges();
Console.WriteLine(“1-”+dr.RowState.ToString());// выведет Unchanged
Dr[“make”] = ”jeep”;
Лекция 27 апреля Работа со свойством ItemArray
Это свойство позволяет получить полный снимок текущей строки в виде массива типа System.Object . Кроме того, при помощи этого свойства можно вставить в таблицу новую строку не указывая явно значение для каждого столбца.
Пример:
//Объявляем массив типа object
object [] mas = new object[4];
DataRow dr;
for(int i=0;i<2;i++)
{
mas[0] = i;
mas[1] = “Make”+Console.ReadLine();
mas[2] = “Color”+Console.ReadLine();
….
dr = dt.NewRow();
dr.ItemArray = mas;
dt.Rows.Add(dr);
}
foreach(DataRow r in dt.Rows)
{
Console.WriteLine(“{0}\t{1}\t{2}\t{3}\t”,r[0],r[1],r[2],r[3]);
}
Использование классов DataSet и DataRelation
DataSet
В ADO .NET возможности работы с наборами таблиц, взаимосвязанных друг с другом, представляет класс DataSet.
Объект DataSet – это создаваемый в оперативной памяти набор таблиц, связанных между собой отношениями и снабженными средствами проверки целостности данных.
Схема иерархии данного класса:
Через свойство tables объекта DataSet мы можем получить доступ к отдельным объектам DataTable, которые хранятся в коллекции DataTableCollection.
Через другое свойство – relations мы можем получить доступ к объектам DataRelation, которые хранятся в коллекции DataRelationCollection.
Поскольку DataSet – это представление базы данных, которое помещается в оперативную память клиента, то в этой модели объект DataRelation представляет отношение между таблицами базы данных.
Свойство ExtendedProperties обеспечивает доступ к объектам, хранящимся в коллекции PropertyCollection.
Рассмотрим наиболее важные свойства DataSet:
CaseSensitive – определяет, будет ли во время операций по сравнению текстовых строк в объектах DataTable учитываться регистр букв;
DataSetName – позволяет получить или задать имя для данного объекта DataSet, обычно значение этого свойства задается как параметр, передаваемый конструктору;
DefaultViewManager – позволяет определить представление по умолчанию для отображения данных в DataSet;
EnforceConstraints – позволяет отключить проверку соответствия ограничений при выполении операции обновления данных в DataSet;
HasErrors – позволяет получить значения, определяющие наличие ошибок в DataSet;
Relations – позволяет обратиться к колекции отношений между таблицами DataSet;
Tables – позволяет получить доступ к коллекции таблиц DataSet.
Наиболее важные методы:
AcceptChanges() – позволяет сохранить в DataSet все изменения, произведенные с момента последнего вызова этого метода;
Clear() – Полная очистка DataSet (удаляются все строки из всех таблиц);
Clone() – «клонирует» (копирует) структуру DataSet (без данных);
Copy() – копирует структуру DataSet (вместе с данными);
Merge() - позволяет производить слияние разных объектов DataSet.
Пример:
private DataTable inventory = new DataTable(“Inventory”);
private DataTable customers = new DataTable(“Customers”);
private DataSet carsDataSet = new DataSet(“CarsDataSet”);
carsDataSet.Tables.Add(inventory);
carsDataSet.Tables.Add(customers);
……….
//Создание структуры таблиц ( их столбцов)
……….
DataRow newRow = inventory.NewRow();
carsDataSet.Tables[“Inventory”].Rows.Add(newRow);
DataRelation
объектно-ориентурованнную оболочку вокруг отношений между таблицами представляет класс System.Data.DataRelation. При создании объекта этого класса необходимо будет указать имя этого объекта, а так же родительскую таблицу и подчиненную таблицу.
DataRelation dr = new DataRelation(“InventoryCustomers(objectName)”,
carsDataSet.Tables[“Inventory”].Columns[“CarID”],
carsDataSet.Tables[“Customers”].Columns[“CarID”]);
carsDataSet.Relations.Add(dr);
Основные свойства DataRelation:
ChildColumns, ChildKeyConstrainе, ChildTable – позволяют получить информацию по подчиненной таблице, учавствующей в отношении, а так же ссылку на саму эту таблицу;
DataSet – позволяет получить ссылку на объект DataSet;
ParantColumns, ParentKeyConstraint, ParentTable – позволяет получить информацию о родительской таблице, учавствующей в отношении, а так же ссылку на эту тублицу;
RelationName – позволяет получить или задать имя для данного отношения.