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

на главную - закладки

Жанры

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

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

Шрифт:

4. Увеличьте размер формы Form1.

5. В окне свойств Properties укажите значение frmPrepareXML для свойства (Name) и значение Prepare XML для свойства Text формы Form1.

6. В верхнем левом углу формы создайте кнопку, перетаскивая ее из панели элементов управления.

7. В окне свойств Properties укажите значение btnInventory для свойства (Name) и значение Create Inventory XML для свойства Text этой кнопки.

В верхней части файла введите следующий код:

Imports System

Imports System.Data

Imports System.Data.SqlClient

Затем

в определении класса формы frmPrepareXML введите приведенный ниже код.

Dim en As New SqlConnection _

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

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

 ByVal e As System.EventArgs) Handles btnlnventory.Click

 Dim dsInventory As New DataSet

 Dim daInventory As New SqlDataAdapter _

("select * from tblInventory ", en)

 daInventory.Fill(dsInventory, "tblInventory")

 ' Сохранение поля ID как XML-атрибута, а не элемента

 dsInventory.Tables("tblInventory").Columns("ID").ColumnMapping = _

MappingType.Attribute

 ' Сокрытие поля WholesalePrice в сохраненном XML-файле

 dslnventory.Tables("tbllnventory").Columns _

("WholesalePrice").ColumnMapping = MappingType.Hidden

 ' Сохранение данных в XML-файле, включая встроенную схему.

 dsInventory.WriteXml("..\Inventory.xml", XmlWriteMode.WriteSchema)

End Sub

После вставки данных в объект DataSet для формирования XML-файла используются следующие два выражение. Первое выражение указывает на то, что поле ID следует сохранить как XML-атрибут:

dsInventory.Tables("tblInventory").Columns("ID").ColumnMapping = _

 MappingType.Attribute

Второе выражение указывает на сокрытие поля WholesalePrice в сохраненном XML-файле:

dslnventory.Tables("tbllnventory").Columns _

 ("WholesalePrice").ColumnMapping = MappingType.Hidden

Наконец, во время сохранения данных используется второй параметр метода WriteXML, который указывает на необходимость включения XSD-схемы вместе с данными. Полученный в результате XML-файл показан в листинге 10.8.

Листинг 10.8. Пример сохранения таблицы tblInventory в виде XML-файла

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

<NewDataSet>

 <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

<xs:element name="NewDataSet" msdata:IsDataSet="true">

<xs:complexType>

<xs:choice maxOccurs="unbounded">

<xs:element name="tblInventory">

<xs:complexType>

<xs:sequence>

<xs:element name="ProductName" type="xs:string" minOccurs="0" msdata:Ordinal="1" />

<xs:element name="RetailPrice" type="xs:decimal" minOccurs="0" msdata:Ordinal="3" />

<xs:element name="Description" type="xs:string" minOccurs="0" msdata:Ordinal="4" />

</xs:sequence>

<xs:attribute name="ID" type="xs:int" />

<xs:attribute name="WholesalePrice" type="xs:decimal" use="prohibited" />

</xs:complexType>

</xs:element>

</xs:choice>

</xs:complexType>

</xs:element>

 </xs:schema>

 <tblInventory ID="1">

<ProductName>Rubber Chicken</ProductName>

<RetailPrice>2.99</RetailPrice>

<Description>The quintessential rubber chicken.</Description>

</tblInventory>

<tblInventory ID="2">

<ProductName>Joy Buzzer</ProductName>

<RetailPrice>9.99</RetailPrice>

<Description>They will get a real shock out of this.</Description>

</tblInventory>

<tblInventory ID="3">

<ProductName>Seltzer Bottle</ProductName>

<RetailPrice>15.24</RetailPrice>

<Description>Seltzer sold separately.</Description>

</tblInventory>

<tblInventory ID="4">

<ProductName>Ant Farm</ProductName>

<RetailPrice>14.99</RetailPrice>

<Description>Watch ants where they live and breed.</Description>

Поделиться:
Популярные книги

Господин моих ночей (Дилогия)

Ардова Алиса
Маги Лагора
Любовные романы:
любовно-фантастические романы
6.14
рейтинг книги
Господин моих ночей (Дилогия)

Его нежеланная истинная

Кушкина Милена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Его нежеланная истинная

История "не"мощной графини

Зимина Юлия
1. Истории неунывающих попаданок
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
История немощной графини

Санек

Седой Василий
1. Санек
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Санек

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Идеальный мир для Лекаря 26

Сапфир Олег
26. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 26

Отверженный VIII: Шапка Мономаха

Опсокополос Алексис
8. Отверженный
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Отверженный VIII: Шапка Мономаха

Хозяйка забытой усадьбы

Воронцова Александра
5. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка забытой усадьбы

Убивать, чтобы жить

Бор Жорж
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать, чтобы жить

Душелов. Том 3

Faded Emory
3. Внутренние демоны
Фантастика:
альтернативная история
аниме
фэнтези
ранобэ
хентай
5.00
рейтинг книги
Душелов. Том 3

Ползком за монстрами!

Молотов Виктор
1. Младший Приручитель
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Ползком за монстрами!

Аргумент барона Бронина

Ковальчук Олег Валентинович
1. Аргумент барона Бронина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аргумент барона Бронина

Газлайтер. Том 12

Володин Григорий Григорьевич
12. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 12