Чтение онлайн

ЖАНРЫ

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:

Запись XML-данных

После загрузки в объект DataSet (независимо от способа и места загрузки) данные и/или схемы данных можно записать в XML-формате (с XML-схемой или без нее). Для демонстрации способов записи данных в XML-формате выполните перечисленные ниже действия.

1. Создайте в форме новую кнопку сразу под кнопкой Read XML, перетаскивая ее из панели инструментов. 

2. В окне свойств Properties укажите значение btnWriteXML для свойства (Name) и значение Write XML для свойства Text этой кнопки.

3. Затем в определении класса формы frmXML введите код из листинга 10.3.

Листинг 10.3.
Код сохранения содержимого объекта DataSet в виде XML-файла

Private Sub btnWriteXML_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles btnWriteXML.Click

 Dim dsSales As New DataSet

 Dim en As New SqlConnection _

("data source=localhost;initial catalog=pubs;user id=sa")

 Dim daAuthors As New SqlDataAdapter("select * from sales", en)

 Dim daPublishers As New SqlDataAdapter("select * from stores", en)

 ' Загрузка реляционных данных из базы данных.

 daAuthors.Fill(dsSales, "Sales")

 daPublishers.Fill(dsSales, "Stores")

 ' Запись XML-данных в файл

 dsSales.WriteXml("…\StoreSales.xml")

 ' Запись схемы в XSD-файл.

 dsSales.WriteXmlSchema("…\StoreSales.xsd")

End Sub

В этой подпрограмме создаются два объекта — адаптера данных (daAuthors и daPublishers), которые затем используются для вставки данных в объект dsPubs из двух таблиц базы данных pubs СУБД SQL Server. В листинге 10.4 приведено содержимое файла StoreSales.xml, который создается в результате выполнения этой подпрограммы. Обратите внимание на то, что данный XML-документ содержит записи о продажах, а затем записи о магазинах. Этот подход имеет смысл, так как между ними не задано никакого отношения. Если бы таблицы Sales и Stores были связаны, то эти записи можно было вложить друг в друга. Пример такого вложения приводится далее, в бизнес-ситуации 10.1.

ЛИСТИНГ 10.4. Содержимое файла StoreSales.xml

<?xml version="1.0" standalone="yes"?>

<NewDataSet>

 <Sales>

<stor_id>6380</stor_id>

<ord_num>6871</ord_num>

<ord_date>l994-09-14T00:00:00.0000000+02:00</ord_date>

<qty>5</qty>

<payterms>Net 60</payterms>

<title_id>BU1032</title_id>

 </Sales>

 <Sales>

<stor_id>6380</stor_id>

<ord_num>722a</ord_num>

<ord_date>l994-09-13T00:00:00.0000000+02:00</ord_date>

<qty>3</qty>

<payterms>Net 60</payterms>

<title_id>PS2091</title_id>

 </Sales>

 <Sales>

<stor_id>7066</stor_id>

<ord_num>A2976</ord_num>

<ord_date>1993-05-24T00:00:00.0000000+02:00</ord_date>

<qty>50</qty>

<payterms>Net 30</payterms>

<title_id>PC8888</title_id>

 </Sales>

 <Sales>

<stor_id>7066</stor_id>

<ord_num>QA7442.3</ord_num>

<ord_date>1994-09-13T00:00:00.0000000+02:00</ord_date>

<qty>75</qty>

<payterms>ON invoice</payterms>

<title_id>PS209K/title_id>

 </Sales>

 <Sales>

<stor_id>7067</stor_id>

<ord_num>D4482</ord_num>

<ord_date>1994-09-14T00:00:00.0000000+02:00</ord_date>

<qty>10</qty>

<payterms>Net 60</payterms>

<title_id>PS2091</title_id>

 </Sales>

 <Sales>

<stor_id>7067</stor_id>

<ord_nurn>P2121</ord_num>

<ord_date>1992-06-15T00:00:00.0000000+02:00</ord_date>

<qty>40</qty>

<payterms>Net 30</payterms>

<title_id>TC3218</title_id> </Sales> <Sales>

<stor_id>7067</stor_id>

<оrd_num>P2121</ord_num>

<ord_date>1992-06-15T00:00:00.0000000+02:00</ord_date>

<qty>20</qty>

<payterms>Net 30</payterms>

<title_id>TC4203</title_id>

 </Sales>

 <Sales>

<stor_id>7067</stor_id>

<ord_num>P2121</ord_num>

<ord_date>1992-06-15T00:00:00.0000000+02:00</ord_date>

<qty>20</qty>

<payterms>Net 30</payterms>

Поделиться с друзьями: