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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 194 195 196 197 198 199 < 200 > 201 202 203 204 205 206 .. 260 >> Следующая

<MvNi:LincIt:fm MyrVciOrrJet-U'-'lUiea Mf№ Procu-IO-'W vvNs:v_a-rtin «"] О КуІЙаЦІ^Ііі^^М^1/»
/.
1 997-1
= M*M» uneltem HlfMi Сі sVID-'JOTBS" М^ЧчРіоі)ийНР-г75" MVriv. .ur^:tv-"ia' HiftiuLrt ІІ'гі^я»"?./!1 /г
Рис. 12-}. XML-документ с таким же списком, но в другом формате
Управлять форматом, который ADO.NET использует при чтении и записи XML-документов в процессе работы с объектом DataSet, можно посредством свойств объектов, входящих в состав DataSet. Фактически документы на рис. 12-3 и 12-4 созданы на основе одного объекта DataSet. Я просто изменил значения некоторых свойств.
Имена элементов и атрибутов
Заметьте: имена элементов в двух документах различаются. В качестве имен соответствующих элементов или атрппугок ADO.NET использует свойство им:-1 объектов. Имя корневого элемента определяется свойством ВШттШШобъекта DataSet. Свойство DataTable объекта ТёЪШажек свойство ColumnName объекта
ГЛАВА Работа с X М L - дан к ы м и 461
DataColumn аналогичным образом определяют имена элементов и атрибутов, соответствующих таблицам и столбцам,
Элементы или атрибуты: что выбрать?
В обоих документах также различается формат представления данных о заказах и входящих в их состав товарах. На рис. 12- эта информация хранится в элементах, а на рис. 12-4 - в атрибутах.
Управляют этим поведением при помощи свойства ColumnMappings объекта DataColumn. Значение свойства ColumnMappings по умолчанию — Element. Если нужно хранить данные столбца в атрибутах, а не в элементах, задайте этому свойству значение Attribute. Кроме того, чтобы исключить содержимое столбца их XML-дожумента, следует задать свойству ColumnMappings значение Hidden.
Вложенные реляционные данные
На рис. 12-3 сведения о составе заказов расположены в конце документа, а на рис. 12-4 эти сведения вложены в элементы, соответствующие заказам. Упра пи-ют вложенностью реляционных данных с помощью свойства Nested объекта Relation. Значение этого свойства по умолчанию — False, формат представления данных соответствует показанному на рис. 3. Если задать свойству Nested значение True, ADO.NET сформирует вложенную структуру (рис. 12-4).
Пространства имен и префиксы
Объекты DataSet, DataTable и DataColumn обладают свойствами Namespace и Prefix, значение которых по умолчанию — пустая строка. На рис. 11 ! свойству Namespace каждого объекта задано значение http://unvw.microsqft.com/MyNamespace, а свойству Prefix — значение Mv,\'s
Кэширование изменений и XML-документы
Вскоре после того, как в ADO появилась возможность считывать и записывать объекты Recordset в XML-формате, у меня состоялась беседа с несколькими раз-которые использовали объект Recordset в качестве посредника для получения данных из БД и записи их в XML-файл. Разработчики изменяли содержимое и дукалк, что для передачи изменений в БД достаточно просто загрузить данные обратно в объект Recordset модели ADO. Однако этот
способ не работал, и вот почему.
В главах 6 и 10 рассказывалось, как объект /hitailutt модели ADO.NET хранит текущее и оригинальное содержимое чтобы удавалось передавать изме-
нения в БД Когда вы изменяете содержимое атрибута или элемента XML-документа, оригинальное значение этого атрибута или элемента в документе не сохраняет-,ся. Если загрузить содержимое измененного XML-документа в объект DataSet, ADO.NET не сможет определить изменены ли какие-либо записи, не говоря уж о том, как именно они изменены.
Фактически, если изменить содержимое объекта DataSet и, воспользовавшись методом сохранить результат в XML-документ при помощи показанно-
го ранее когда, изменения будут утеряны. По умолчанию метод WriteXml сохраняет в XML-документ только текущее содержимое записей.
462 Часть III Автономная работа с данными: объект DataSet модели ADO. NET
XML-документы формата diffgram
Как уже говорилось, при вызове методу invVtAwдопустимо передавать значения из перечисления X»ii\X'rik:,\'tnth Один из элементов этого перечисления — DifGrit^-i Если передать его методу WriteXml, м >'¦ ). NrT мчите! текущее и оригинальное содержимое объекта DataSet в XML-документ формата diffgram. На рис. 1 2-5 показан пример такого документа. Позже этот документ можно будет загрузить обратно в объект DataSet и передать отложенные изменения в БД посредством объектов D'7-!AAdai}isr.
\ И t vttjfloVWML k'.icriT^ri toinia l'-°H

' ш . IT ** ' - ^3

* "zml увиюп—"1.ГГ =tand*lcH>e»*|»*J.' i
- '?ifT^i:JiP^rir, ,m ni:nu4ict-*vrn;»:h*ni4»-t"<tLrva4lt-<*(ni4m] ni*3ata


- — irfrjr ш-'СнИчтрп!" m/iiiti r/'-rnsr-"0'>
П|а*вО?« ¦ tu > ALr»!*/'.*: ^rfr, i-«i[D >
* :gm:.r,b4nTi*J AhYeds Futterfcuta-q". ^rnpjr.'Ma^Ei-

* "af^Sit*^ Jflgr .ij—"[Uftemкr» 1" m:da'* n^yOT^t^'t" iii*4r.-<si-ц n^r-J" ¦ ...,1lt.r:l
<Cu"tf"-." "iL" -ЛЧАГИ* МиИппт-1Г -
<;.?rriF«-To4anw»-H*dtfled Company МЯМЙМУСС^'ПНМЙДО
4/Ci.iteit.erS*
' Cus'.gmers (Jttfjji Curtomeri-r miu:i з;я-:т:*-« 3* ;inV -ц _ ha>-je« - МЗЙЙЯЙ
<[Ju*t irr. ANEW 1*.;СиЯатвг]С'>
Предыдущая << 1 .. 194 195 196 197 198 199 < 200 > 201 202 203 204 205 206 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100