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

 

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

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

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

¦«CorripAJiiNaiiies-New Сатрапу Ылтш</'.1^.,\\гh«'nя


ч:Лг?д^ ibri+nr >
- <'"iiiirm»--» ;ing. hjV'Cuitom+MJ* i »td»"-» t t'^
^Custom-rlDvANATR-t/Custrjmei-lD*
-гСатрлл-^л'пр An-i тщцЦц E.mp«r*da4a« у h4Ud«i- .i-.v. .,H. -.

t'7 ль: <r.ri i ilf."Cuik«m*™3" Trrfdat4:itih^r39t »"4"^

. - i.-- f4**m -Anlnnlq 4*r*nw T*qupHe-;.'-t;i.ii* ¦ ;Ывг *



a

Рис. 12-5. Содержимое объекта записанное
в XML-документ формата diffgram
Следующий фрагмент кода генерирует XML-документ, показанный на рис. 12-5. Он изменяет объект DataSet (изменяет одну запись, удаляет вторую и добавляет третью) и затем выводит его содержимое в виде XML-документа формата diffgram. Изучив представленный документ, вы увидите, как именно изменения, вносимые кодом в содержимое .. соответствуют записям XML-документа формата diffgram. Код использует показанную ранее процедуру SbowXmHnlt и поэтому ему требуется ссылка на библиотеку Microsoft Internet Controls.
Visual Basic NET
Dim strConn, strSQL As String
strConn = "Provider=SQL0L?DB;Data Source=(local)\NetSDK;" & _ "Initial Catalog=Northwind;Trusted_Connection=Yes;" strSQL = "SELECT TOP 3 CustomerlD, CompanyName FROM Customers" Dim da As New 01eDbDataAdapter(strSQL, strConn) Dim ds As New DataSet() da.Fill(ds, "Customers")
Dim .31 As Dalalable = us. Tables? ¦Customers".;
Залась о первом клиенте пропускаем
ГЛАВА 12 Работа с XML-данными 463
'Изменясь запись о втором клиенте
tbl.Rows(1)("CompanyNaine") = "Modified Company Name"
запись о клиенте
tbl.Rows(2). DeleteQ
'Добавлаек нового клиента
tbl.Rows.Add(New Object() {"ANEW1", "New Company Name"})
'Сохраняв? содержимое в XML-документ формата diffgiam
'и выводим документ в Internet Explorer Dim strPathToXml As String = "C:\MyData.XHL" ds.WriteXnil(strPathToXml, XmlWriteMode.DiffGram) ShowXmlInlECstrPathToXml)
Visual C# .NET
string strConn, strSQL.
strConn = "Provider=SQLOLEDB; Data Source=(lQcal)\\NetSDK;" + "Initial Catalog=Northwtnd;Trusted_Connection=Yes;";
strSQL = "SELECT TOP 3 CustomerlD, CompanyName FROM Customers";
OleDbDataAdapter da = new 01eDbDataAdapter{strSQL, strConn);
DataSet ds = new DataSetQ;
da.Fill(ds, "Customers");
DataTable tbl = sis. Taciesf "CcsfnfTers '];
о первом клиенте пропускаем о втором клиенте tbl,Rows[1]["CoirpanyName"] = "Modified Company Name";.
запись о третьем клиенте tbl.Rows[2].Delete();
нового клиента
tbl. Rows.Add(new object [] {"ANEW1", "New Company Name"});
//Сохраняем содержимое в XML-документ формата diffgram //и выводим документ в Internet Explorer string StrPathToXml = "С:\\MyData. XML"; ds.WriteXnil(atrPathToXml, XmlWriteMode. DiffGram); ShowXmlInIE(StrPathToXml);
DataSet + XmlDocum ent = XmiDataDocument
В показанных ранее фрагментах кода применяются XML-функции объекта DataSet, не слишком поражающие воображение. Если с их помощью просто ззтше;. ьцт;-содержимое объекта DataSet в файл и затем загружать эти данные обратно в DalaSeU тот факт, что ADO.NET сохраняет данные в XML-формате, не имеет значения.
Если вам действительно нужно работать с содержимым объекта DataSetBXML-формате, загрузите данные в объектXmlDocument. У этого объекта есть моют Load.
464
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
позволяющий загружать содержимое XML-файла, поэтому сначала при помощи метода iktiaSetAXriteXn, следует создать КМ!.-фаил. а затем воспользоваться методом Km!Di>atn<eniLoao и загрузить его. На первый взгляд все выглядит великолепно, однако в результате вы получаете два объекта с одинаковыми данными, синхронизировать которые не так-то просто. Если вы изменяете содержимое одного из них, вам потребуется найти и изменить соответствующие данные в другом объекте. Вот задача!
Использование объекта Xmluatauocument
Простое решение данной проблемы — воспользоваться объектом XmlDataDocument. Можно считать, что XmlDataDocument - это объект XmlDocument, умеющий взаимодействовать с объектом DataSet. Класс XmlDataDocument является производным от XmlDocument, и поэтому объект XmlDataDocument предоставляет такие же функции, как и XmlDocument.
Объект XmlDataDocument обладает двумя ключевыми возможностями. Он позволяет легко загружать содержимое DataSet в XmlDocument и наоборот. XmlDataDocument также синхронизирует себя с объектом DataSet. Данные DataSet доступны
и через объект XmlDataDocument. Кроме того, изменения содержимого одного
объекта отражаются на содержимом другого.
Работа с объектом DataSet как с XML-документом
Если вы программируете на XML и привыкли обращаться к данным с помощью XML-документов, воспользуйтесь объектом XmlDataDocument и обращайтесь к содержимому объекта DataSet посредством XML-интерфейсов.
Например, создайте объект XmlDataDocument, синхронизированный с объектом DataSet, и просматривайте содержимое DataSet при помощи запросов XPath. Следующий фрагмент кода создает XmlDataDocument, синхронизированный с
DataSet и содержащий информацию о заказах клиента и их составе. Код с помощью запросов XPath получает из объекта XmlDataDocument данные о заказе. Здесь используется приводившаяся ранее процедура и поэтому в код
Предыдущая << 1 .. 195 196 197 198 199 200 < 201 > 202 203 204 205 206 207 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100