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

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

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

ds.WriteXml("с:\\test\\sample.xml" , XmlWriteMode, WriteSchema);

…создается следующий XML. Отметим, что мы включили в документ схему XSD. Если нежелательно, чтобы схема включалась в файл, то можно передать член перечисления

XmlWriteMode.IgnoreSchema
:

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

<XMLProducts>

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

<xsd:element name="XMLProducts" msdata:IsDataSet="true">

<xsd:complexType>

<xsd:choice maxOccurs="unbounded">

<xsd:element name="products">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="ProductID" type="xsd:int" minOccurs="0" />

<xsd:element name="ProductName" type="xsd:string" minOccurs="0" />

<xsd:element name="SupplierID" type="xsd:int" minOccurs ="0" />

<xsd:element name="CategoryID" type="xsd:int" minOccurs="0" />

<xsd:element name="QuantityPerUnit" type="xsd:string" minOccurs="0" />

<xsd:element name="UnitPrice" type="xsd:decimal" minOccurs="0" />

<xsd:element name="UnitsInStock" type="xsd:short" minOccurs="0" />

<xsd:element name="UnitsOnOrder" type="xsd:short" minOccurs="0" />

<xsd:element name="ReorderLevel" type="xsd:short" minOccurs="0" />

<xsd:element name="Discontinued" type="xsd:boolean" minOccurs="0" />

</xsd:sequence>

</xsd:сomplexType>

</xsd:element>

</xsd:choice>

</xsd:complexType>

</xsd:element>

 </xsd:schema>

 <products>

<ProductID>1</ProductID>

<ProductName>Chai</ProductName>

<SupplierID>1</SupplierID>

<CategoryID>1</CategoryID>

<QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit>

<UnitPrice>18</UnitPrice>

<UnitsInStock>39</UnitsInStock>

<UnitsOnOrder>0</UnitsOnOrder>

<ReorderLevel>10</ReorderLevel>

<Discontinued>false</Discontinued>

 </products>

 <products>

<ProductID>2</ProductID>

<ProductName>Chang</ProductName>

<SupplierID>1</SupplierID>

<CategoryID>1</CategoryID>

<QuantityPerUnit>24 - 12 oz bottles</QuantityPerUnit>

<Unitprice>19</UnitPrice>

<UnitsInStock>17</UnitsInStock>

<UnitsOnOrder>40</UnitsOnOrder>

<ReorderLevel>25</ReorderLevel>

<Discontinued>false</Discontinued>

 </products>

</XMLProducts>

Показаны

только два первых продукта. Реальный файл XML будет содержать все продукты из таблицы
Products
базы данных
Northwind
.

Это выглядит достаточно просто для одной таблицы, но что будет для реляционных данных, таких как несколько

DataTables
и
Relations
в
DataSet
? Все по-прежнему работает таким же образом. Внесем следующие изменения в коде (эту версию можно найти в
ADOSample3
):

private void button1_Click(object sender, System.EventArgs e) {

 //создать множество данных (DataSet)

 DataSet ds=new DataSet("XMLProducts");

 // соединиться с базой данных northwind и

 //выбрать все строки из таблицы products и таблицы suppliers

 //проверьте, что строка соединения соответствует конфигурации сервера

 SqlConnection conn=

new SqlConnection(@"server=GLYNNJ_CS\NetSDK;uid=sa;pwd=;database=northwind");

 SqlDataAdapter daProd=new SqlDataAdapter("select * from products", conn);

 SqlDataAdapter daSup=new SqlDataAdapter("select * from suppliers", conn);

 //Заполнить DataSet из обоих SqlAdapters

 daProd.Fill(ds, "products");

 daSup.Fill(ds, "suppliers");

 //Добавить отношение

 ds.Relations.Add(ds.Tables["suppliers"].Columns["SupplierId"],

ds.Tables["products"].Columns["SupplierId"]);

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

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

На границе империй. Том 9. Часть 5

INDIGO
18. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 5

Деспот

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Деспот

Чехов книга 3

Гоблин (MeXXanik)
3. Адвокат Чехов
Фантастика:
попаданцы
альтернативная история
аниме
6.00
рейтинг книги
Чехов книга 3

Вечный. Книга V

Рокотов Алексей
5. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга V

Анти-Ксенонская Инициатива

Вайс Александр
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Анти-Ксенонская Инициатива

Калибр Личности 4

Голд Джон
4. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 4

Офицер

Земляной Андрей Борисович
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Офицер

Измена. Тайный наследник. Том 2

Лаврова Алиса
2. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник. Том 2

Цикл "Отмороженный". Компиляция. Книги 1-14

Гарцевич Евгений Александрович
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Цикл Отмороженный. Компиляция. Книги 1-14

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Имперец. Том 1 и Том 2

Романов Михаил Яковлевич
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 1 и Том 2