Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Объектно-ориентированное программирование

Извлечение связанных записей

Объекты DataRelation позволяют извлекать строки, содержащие родительские и дочерние поля. Для этого нужно вызвать методы GetChildRows() или GetParentRow() объекта DataRow, которые требуют передать им действительный объект DataRelation. Метод GetChildRow() возвращает массив дочерних строк, заданных объектом DataRelation.

Метод GetParentRow() отличается от него лишь тем, что возвращает только одну строку – родительскую, также заданную объектом DataRelation. Вызов этих методов иллюстрируется следующим примером, который предполагает наличие таблиц Customers и Orders, связанных посредством объекта DataRelation с именем CustomersOrders; обе эти таблицы располагаются в объекте DataSet с именем myDataSet:

DataRow[ ] ChildRows;

DataRow ParentRow;

//Вернуть все дочерние строки первой строки табл. Customers,

//заданные объектом DataRelation с именем CustomersOrders

ChildRows = myDataSet.Tables

["Customers"]. Rows[1].GetChildRows(CustomersOrders);

// Вернуть дочернюю строку пятой строки таблицы Orders,

// заданную объектом DataRelation с именем CustomersOrders.ParentRow = myDataSet.Tables ["Orders”].Rows[5].GetParentRow(CustomsrsOrders);

Создание новых строк в объектах DataTable

Для добавления новых строк в таблицу DataTable нужно добавить новые объекты DataRow в коллекцию Rows данной таблицы. Объекты DataRow представляют строки таблицы БД. Создавать объекты класса DataRow с использованием операции new нельзя, вместо этого следует вызвать метод NewRow() объекта DataTable, к которому добавляется объект DataRow. Например:

DataRow myRow; myRow = tbl.NewRow();

Созданный объект DataRow можно заполнить данными, введенными пользователями или полученными из любого источника данных (коллекции или массива). Для доступа к полям записи используется коллекция Item объекта DataRow. Для занесения заполненного объекта DataRow в таблицу его нужно добавить к коллекции Rows объекта DataTable. Следующий пример показывает заполнение объекта DataRow данными и сохранение его в таблице:

DataSet ds = new DataSet();

DataTable tbl = ds.Tables["MyBooks"];

DataRow row = tbl.NewRow(); myRow ["id"] = 44;

myRow ["authir"] = "Терентьев И.A."; myRow ["year"] = 2003; tbl.Rows.Add(row);

Удаление записей из объектов DataTable

Для удаления записей из таблицы можно использовать метод Remove() коллекции Rows класса DataTable. Например:

// здесь tbl объект класса DataTable tbl. Rows. Remove(row);

Кроме этого, можно использовать метод Delete() класса DataRow. Например:

// здесь row объект класса DataRow row.Delete();

Обновление базы данных

Закончив работу с копией базы данных в объекте DataSet, можно обновить БД, вызвав метод Update() соответствующего объекта DataAdapter, с помощью которого выполнялось заполнение данной таблицы. Например:

DataSet ds = new DataSet();

// создаем и заполняем DataAdapter da Da.Fill(ds, "Product"):

// выполняем изменения таблицы Product в ds myDataAdapter.Update(ds, "Product"); myOtherDataAdapter.Update();

В результате вызова данного метода все изменения, внесенные в объект DataSet, переносятся в реальную БД. При этом можно указать объект DataSet, DataTable или массив объектов DataRows, подлежащий обновлению:

myDataAdapter.Update(myDataSet);

myDataAdapter.Update(myDataTable);

myDataAdapter.Update(myDataRows);

Класс Data View

Класс DataView позволяет создать разные (альтернативные) представления (view) одной и той же таблицы. Он включает дополнительные возможности для сортировки и фильтрации записей таблицы. Основными свойствами данного класса являются RowFilter (фильтр), которое задает условие отбора записей из DataTable, и Sort (сортировка), которое задает правило сортировки записей (перечисление полей, по значениям которых будут упорядочиваться записи, и порядок сортировки: по умолчанию – по возрастанию; если задано DESC – по убыванию). Например:

DataView view = new DataView(myDT);

view.Sort = "LastName ASC, FirstName ASC, Salary DESC";

view.RowFilter = "City = Томск"':

Объект класса DataView связать с элементами графического интерфейса, например DataGridView, используя свойства DataSource. Пример создания и связывания с DataView:

// создаем объект DataView для объекта DataTable DataView view = new DataView(employee);

// задаем правила сортировки и условия фильтра отбора

view.Sort = "LastName ASC, FirstName ASC, Salary DESC": view.RowFilter = "LastName like 'A%' and Salary > 15":

// если есть ЭУ для отображения

DataGridView dgv.DataSource = view;

 
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы