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

ЖАНРЫ

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

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

Шрифт:

<stor_id>6380</stor_id>

<stor_name>Eric the Read Books</stor_name>

<stor_address>788 Catamaugus Ave.</stor_address>

<city>Seattle</city>

<state>WA</state>

<zip>98056</zip>

</Stores>

<Stores diffgr:id="Stores2" msdata:rowOrder="1">

<stor_id>7066</stor_id>

<stor_name>Barnum's</stor_name>

<stor_address>567 Pasadena Ave.</stor_address>

<city>Tustin</city>

<state>CA</state>

<zip>92789</zip>

</Stores>

 </diffgr:before>

</diffgr:diffgram>

НА
ЗАМЕТКУ

Для сохранения только измененных записей в формате DiffGram следует использовать метод GetChanges:

Dim ChangedDataSet = dsSales.GetChanges

ChangedDataSet.WriteXml("..\Changes.xml", XmlWriteMode.DiffGram)

В листинге 10.7 приведено содержимое файла DiffGram.xml, полученного в pезультате выполнения этого метода. 

Листинг 10.7. XML-файл changes.xml в формате DiffGram только с измененными записями

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

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">

 <NewDataSet>

<Stores diffgr:id="Stores1" msdata:rowOrder="0" diffgr:hasChanges="modified">

<stor_id>999</stor_fd>

<stor_name>Eric the Read Books</stor_name>

<stor_address>788 Catamaugus Ave.</stor_address>

<city>Seattle</city>

<state>WA</state>

<zip>98056</zip>

</Stores>

<Stores diffgr:id="Stores3" msdata:rowOrder="2" diffgr:hasChanges="inserted">

<stor_name>New Store</stor_name>

</Stores>

 </NewDataSet>

 <diffgr:before>

<Stores diffgr:id="Stores1" msdata:rowOrder="0">

<stor_id>6380</stor_id>

<stor_name>Eric the Read Books</stor_name>

<stor_address>788 Catamaugus Ave.</stor_address>

<city>Seattle</city>

<state>WA</state>

<zip>98056</zip>

</Stores>

<Stores diffgr:id="Stores2" msdata:rowOrder="1">

<stor_id>7066</stor_id>

<stor_name>Barnum's</stor__name>

<stor_address>567 Pasadena Ave.</stor_address>

<city>Tustin</city>

<state>CA</state>

<zip>92789</zip>

</Stores>

 </diffgr:before>

</diffgr:diffgram>

Бизнес-ситуация 10.1:

подготовка XML-файлов для бизнес-партнеров

Компания Jones Novelty обменивается информацией с помощью электронных средств передачи данных со многими своими поставщиками и партнерами. Развитие этой тенденции, вероятно, приведет к тому, что компании придется спустя какое-то время применить качественно новое решение, например систему Microsoft BizTalk Server. В настоящее время Брэд Джонс стремится удовлетворить текущие потребности и сохранить конкурентоспособность, применяя XML для передачи транзакций. Для этого будут использованы уже описанные возможности XML и ряд других, которые описываются далее. Следует отметить, что многие требования можно удовлетворить даже без использования "мощных и тяжеловесных" платформ, инструментов и технологий, например XSLT.

Сначала следует организовать отправку XML-файла с перечнем товаров на складах. Для этого должны быть посланы сведения из всех полей таблицы tblInventory, за исключением поля WholesalePrice. Хотя это можно организовать с помощью простого запроса, который включает все поля, кроме WholesalePrice, в данном примере используется способ на основе XML-свойств. Для создаваемого XML-файл существует еще одно требование: в него необходимо включить XSD-схему с описанием всех полей как элементов, за исключением поля ID, которое передается с помощью атрибута.

Для создания этого приложения выполните перечисленные ниже действия.

1. Запустите интегрированную среду разработки Visual Studio .NET и создайте новый проект Visual Basic Windows Application. Для этого в диалоговом окне New Project (Новый проект) выберите тип проекта Visual Basic Project в области Project Types (Типы проектов), а затем шаблон Windows Application (Приложение Windows) в области Templates (Шаблоны).

2. Назовите проект BusinessCaseIO.

3. Укажите путь к файлам проекта.

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

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