Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 264

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 258 259 260 261 262 263 < 264 > 265 266 267 268 269 270 .. 320 >> Следующая


- ¦¦ Cars View)
CarlD I Make | Coicr |
1020 Jeep Tan
1030 Caravan Rnk Pain Inducer
1040 BMW F%a Soup Gre Fred
1050 BMW Slack Buddha
10Є0 Firebird Red ' Mel
1070 Colt Black Sarah

Only Red С Г:; v V ew
CarlD Make I Сок» j PetName
> 1060 Firebird Red Mel
*

Only CoHs View
CarlD Make I Cot« . PetName
> " 1070 CaIt Black Saiah

fl
Рис. 13.17. Несколько элементов DataGrid, каждый из которых основан на своем DataView
Чтобы все это реализовать на практике, первое, что мы должны сделать — объявить необходимые переменные класса DataView: pub I ic class "M-i^o-n : System.Windows. Forms.Form {
Il Переменные для наших представлений
DataView redCarsView: // Только красное
DataViewcoltsView; // Только Colt
Г
Предположим, что в нашем распоряжении есть вспомогательная функция Create которое вызывается непосредственно после создания объекта
DataTable:
protected void btnMakeDataTable_C"l ick (object sender. System. EventArgs e) {
// Создаем объект DataTable MakeTableC);
//Создаем представления
CreateViews();
)
654 Глава 13 • Доступ к данным при помощи ADO.NCT"
Код приложения CarDataTahle можно найти в подкаталоге Chapter 13.
!Возможности класса DataSet
К этому моменту мы с вами уже умеем создавать таблицы с данными (объекты DataTable) в оперативной памяти и выполнять с ними все необходимые операции. В принципе, это может быть вполне достаточно для многих приложений. Однако гораздо чаще таблицы в базах данных используются не сами по себе, а во взаимо-
Реализация самой функции CreateViews () представлена ниже. Обратите внимание, что конструктору DataView передается в качестве параметра объект DataTable. на основе которого создается представление:
private void CreateViews О {
It Вначале определяем базовую таблицу для представлений redCarsView= new DataView(inventoryTable): coltsView - new DataView(inventoryTable):
Il Теперь настраиваем представления при помощи фильтра redCarsView.RowFilter - "Color - 'Red'": coltsView.RowfiIter - "Make = 'colt'";
// Привязываем представления к элементам управления DataGrid
RedCarViewGrid.DataSource = redCarsView: CoUsVi ewGrid.DataSource • coltsView:
)
Как мы могли видеть, в классе DataVi ew предусмотрено свойство Rowi'i 1 ter, для которого используется текстовая строка с критериями отбора объектов DataRow, После того как объекты DataViewпoлнocтью сконфигурированы, мы просто указываем их в качестве источника данных для элемента управления DataGri d (через свойство DataSouree), Элементы управления OataGrld умеют отслеживать изменения, которые вносятся в источникданныхдля них. Поэтому если мы заменим в DataTable все BMW на Colt, то значения в DataGrid автоматически изменятся, отобразив эти перемены.
Некоторые наиболее важные члены класса DataView представлены в табл. 13.8.
Таблица I3.8. Члены класса DataView Член_Назначение
Aoril\lew() Добавляет новую строку через DataView
AllowDelete Позволяют настроить возможность проведения через DataView операций по удалению, редактированию и добавлению новых строк в таблицу
AHowNew
Позволяет удалить существующую строку через DataView (необходимо указать ее порядковый номер)
RowFilter Позволяет получить или установить выражение, используемое для фильтрации строк, отображаемых через DataView
Sort Позволяет настроить порядок сортировки строк в DataView
Table Позволяет получить или указать базовую таблицу для DataTable
Возможности класса DataSet 655
действии с другими таблицами. В ADO.NET возможности работы с наборами таблиц, взаимосвязанных друг с другом, предоставляет класс DataSet. В действительности при использовании объектов для доступа к источникам данных, і юстдллї-є-мых с ADO.NET, нам чаще всего не удастся получить объект DataTabl е с данными напрямую — все интерфейсы для доступа к данным в ADO.NET возвращают именно объект DataSet (как набор взаимосвязанных объектов DataTabl е).
Объект DataSet - это создаваемый в оперативной памяти набор таблиц (объектов DataTablе), связанных между собой отношениями и снабженными средствами проверки целостности данных (для них в DataSet предусмотрены свои объекты). Разобраться в иерархии классов, входящих в DataSet, поможет схема на рис. 13.18.
DataSet
DataRelationCollection
DataTableCollection
PropertyCollection
]
Доступ производится через свойства Relations, Tables и Extended Properties соответственно
Рис. 13.18. Внутренние коллекции DataSet
Через свойство Tables объекта DataSet мы можем получить доступ к отдельным объектам DataTable, которые хранятся в коллекции DataTableCol lection. Через другое свойство — Relations, мы можем получить доступ к объектам DataRelation, которые хранятся в коллекции DataRelationCollection. Поскольку DataSet - это фактически представление базы данных, которое помещается в оперативную память клиента (и с которой можно работать при разорванном соединении), то в этой модели объекты DataRelation представляют отношения между таблицами базы данных.
Предыдущая << 1 .. 258 259 260 261 262 263 < 264 > 265 266 267 268 269 270 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100