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

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 121

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 115 116 117 118 119 120 < 121 > 122 123 124 125 126 127 .. 260 >> Следующая

• они являются динамическими. Их можно программно создавать, изменять и удалять как до, так и после запроса к связанным таблицам БД;
• поддерживают каскадные обновления. "кем ь должны ли изменения родительской записи передаваться дочерним записям, можно при помощи свойств ограничения связанного с объектом
• позволяют создавать иерархии на основе разных источников данных. Вам нужно связать результаты запроса о клиентах к БД SQL Server и результаты запроса о заказах к БД Oracle? Без проблем.
260
Часть Автономная работа с данными: сбъбкт DataSet модели ado net
Недостаток у объектов ияШскНкт только один: • затруднена фильтрация. К сожалению, объекты DataRelation не позволяют легко выбрать только дочерние згнпк п. соответствующие нужным родительским записям. Подробнее о способах разрешения данной проблемы — далее в этой главе.
Работа с объектами DataRelation в коде
Вы можете использовать собственный код для перемещения по нескольким таблицам данных, для проверки и агрегации данных, а также для каскадирования изменений. Тем не менее эти же операции легко и просто осуществляются средствами объекта DataRelation модели ADO.NET. Сейчас я покажу, как программно создать объект DataRelation.
Создание объектов DataRelation
У объекта DataRelation есть несколько важных свойств, значения которых задаются с помощью конструкторов. При создании DataRelation следует ука-.зать его имя, чтобы объект удалось паитп в наборе; кроме того, необходимо указать родительский и дочерний столбцы, на которых будет основано отношение.
Чтобы упростить создание одноименных объектов, класс DataRelation предоставляет отдельные топору к торы, принимающие отдельные объекты DataCohnnn и массивы таких объектов.
В стандартном примере, создающем отношение, используются объекты Data-Table,содержащие информацию о заказах и клиентах (рис. 7-3). Следующий фрагмент кода создает объект DataRelation для данного примера:
Visual Basic .NET
'Создав! новый объект DataSet и добавляем объекты DataTable и DataColumn Dim ds As New DataSet ()
объект DataRelation, связывающий две таблицы Dim rel As DataRelation rel = New DataRelation("CustomersOrders",
ds. Tables( "Customers"). Coluntns( "CustomerID"), ds.Tahles("Orders").Colu!nns( "CustomerID"}) ds.Relationships.Add(rel)
Visual C# .NET
новый объект DataSet и добавляем объекты DataTable и DataColumn
DataSet ds = new DataSet();
объект DataRelation, связывающий две таблицы
DataRelation rel;
re! = new DataRelation;"CustomersOrde; s",
ds.Tables["Custome rs"].Columns!"CustomerlD"],
ГЛАВА 7 Работа с реляционными данными
261
ds. Tables[ '"Orders" ]. Columns["CustomerID"]); ¦ds. Relationships. Add( rel);
mi*- '-ИЗ
ALHtl Й N t-"il г.....-i-fci: li-
l№4 J н - :¦!'..'iV??
И,'Д'19 7
|И/1Э'1 97
|/1Г. /19 Я
i **¦>¦¦ i1 1У J f.vl 1 К
i i.'i I ¦1,-V'IVVH
ПНЙ1К An л Tr In ¦[¦¦¦¦
tHEHH ¦ 9/18/19 6
/ff/ltf?
IB75I l/aSvt 9V

ЙН10Н 4l.l4l.Ll №|ГС1т FrtUILrrlrl
t oHfi

i tr. r.
|UV7
LfKM #/»/1997
IHHbb ?28/19 Я
•¦I:--ч .......г..1
l/IS/l 96
103*3 2,'Н».'* 96
IIMS3 /21^1? 7
iffiSB /4/1997
Рис. Вывод связанной информации
Если нужно определить отношение, основанное на нескольких столбцах, воспользуйтесь конструктором [jou-iR;¦ki/n'tt. принимающим массивы объектов па>а Column:
Visual Basic .NET
'Caabas? новый объект DataSet и добавляем объекты DataTable и DataCoiu-nn
Dim ds As New DataSetC)
¦Созд-ае? массивы объектов DataColumn, на которых 'будет основан новый объект DataRelation Dim colsParent, colsChild As DataColumn() With ds.Tables("ParentTable")
colsParent = New DataColumn() {.Columns("ParentColumn1"),
.Columns("ParentColumn2")}
End With
With ds.TablesC'ChildTable")
¦colsChild = New DataColumnO {.ColumnsC'ChildColumnl"),
.Coluinns("ChildColumn2")}
End With
новый объект DataRelation
Dim rel As DataRelation
rel = New DataRelationCMultipleColumns", colsParent, colsChild) ds.Relationships.Add(rel)
*
Visual C# .NET
объект DataSet и DataTable и DataColumn
DataSet ds = new DataSetO;
//Создае* массивы объектов DataColumn, на которых //будет основан новый объект DataRelation
262
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
DataTable tblParent, tblChilrJ; DataColumn[] colsParent, colsChild; tblParent = ds.TabLes|."ParentTable"];
colsParent = new DataColumn[] {tblParent.Columns[',ParGntColumn1,,]l
tblParent.Columns["ParentColumn2"]}; tblChild = ds.Tables["ChildTeble"];
colsChild = new DataColuinn[] {tblChild.Colurans["ChlldColumn1"],
tblChild.Columns["ChildColumn2"]};
//Создаем новый объект DataRelation DataRelation rel;
rel = new DataHelationfMultipleColumns", colsParent, colsChild); ds.Relationships.Add(rel);
Кроме того, у DataRelation есть пара конструкторов, сигнатуры которых соответствуют сигнатурам, p:icc мотрс.....дм выше, и включают четвертый -гргкгтр,
¦определяющий, нужно ли создавать ограничения для обеспечения ссылочной целостности на основе нового отношения. По умолчанию при создании объекта DataRelation в объекты DataTable добавляются ограничения (если только эти ограничения еще не существуют). Подробнее об этом — чуть дальше.
Предыдущая << 1 .. 115 116 117 118 119 120 < 121 > 122 123 124 125 126 127 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100