Рейтинговые книги
Читем онлайн Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 72 73 74 75 76 77 78 79 80 ... 88

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

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()

 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>

  </tblInventory>

  <tblInventory ID="5">

   <ProductName>Wind-Up Robot</ProductName>

   <RetailPrice>29.99</RetailPrice>

   <Description>Giant robot: attack toybox!</Description>

  </tblInventory>

  <tblInventory ID="6">

   <ProductName>Rubber Eyeballs</ProductName>

   <RetailPrice>0.99</RetailPrice>

   <Description>Peek-a-boo!</Description>

  </tblInventory>

  <tblInventory ID="7">

   <ProductName>Doggy Mess</ProductName>

   <RetailPrice>1.99</RetailPrice>

   <Description>Yechhh!</Description>

 </tblInventory>

 <tblInventory ID="8">

  <ProductName>Mini-Camera</ProductName>

  <RetailPrice>9.99</RetailPrice>

  <Description>For future spies!</Description>

 </tblInventory>

 <tblInventory ID="9">

  <ProductName>Glow Worms</ProductName>

  <RetailPrice>1.99</RetailPrice>

  <Description>Makes them easy to find</Description>

 </tblInventory>

 <tblInventory ID="10">

  <ProductName>Insect Pops</ProductName>

  <RetailPrice>0.99</RetailPrice>

  <Description>Special treats</Description>

 </tblInventory>

 <tblInventory ID="11">

  <ProductName>Alien Alarm Clock</ProductName>

  <RetailPrice>45.99</RetailPrice>

  <Description>Do you know what time it is out there?</Description>

  </tblInventory>

  <tblInventory ID="12">

   <ProductName>Cinnamon Toothpicks</ProductName>

   <RetailPrice>1.99</RetailPrice>

   <Description>Really wakes up your mouth</Description>

  </tblInventory>

 </NewDataSet>

Для составления ведомости на выдачу заработной платы сотрудникам компании нужно создать код сохранения информации о сотрудниках в формате XML для каждого отдела. Для этого разработчик базы данных должен включить в форму frmPrepareXML вторую кнопку btnEmployees и вставить в код класса формы frmPrepareXML код из листинга 10.9.

Листинг 10.9. Код сохранения данных из таблиц tblEmployee и tblDepartment в XML-файле

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

 ByVal e As System.EventArgs) Handles btnEmployees.Click

 Dim dsEmployees As New DataSet()

 Dim daEmployees As New SqlDataAdapter _

  ("select * from tblEmployee", en)

 Dim daDepartments As New SqlDataAdapter _

  ("select * from tblDepartment", en)

 daDepartments.Fill(dsEmployees,"tblDepartment")

 daEmployees.Fill(dsEmployees, "tblEmployee")

 ' Определение отношения между таблицами.

 dsEmployees.Relations.Add("DepartmentEmployees", _

  dsEmployees.Tables("tblDepartment").Columns("ID"), _

  dsEmployees.Tables("tblEmployee").Columns("DepartmentID"))

 ' Сохранение данных в XML-файле.

 dsEmployees.WriteXml("..Employees.xml")

End Sub

В этом коде для сохранения данных из таблиц tblDepartment и tblEmployee в XML-файле используются предлагаемые по умолчанию параметры объекта DataSet. Полученный в результате XML-файл Employees.xml показан в листинге 10.10.

Листинг 10.10. XML-файл Employees. xml, полученный в результате сохранения данных из таблиц tblDepartment и tblEmployee

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

<NewDataSet>

 <tblDepartment>

  <ID>1</ID>

  <DepartmentName>Administration</DepartmentName>

 </tblDepartment>

 <tblDepartment>

  <ID>2</ID>

  <DepartmentName>Engineering</DepartmentName>

 </tblDepartment>

 <tblDepartment>

  <ID>3</ID>

  <DepartmentName>Sales</DepartmentName>

 </tblDepartment>

 <tblDepartment>

  <ID>4</ID>

  <DepartmentName>Marketing</DepartmentName>

 </tblDepartment>

 <tblEmployee>

  <ID>1</ID>

  <FirstName>Carole</FirstName>

  <LastName>Vermeren</LastName>

  <DepartmentID>2</DepartmentID>

  <Salary>222</Salary>

 </tblEmployee>

 <tblEmployee>

  <ID>2</ID>

  <FirstName>Cathy</FirstName>

  <LastName>Johnson</LastName>

  <DepartmentID>2</DepartmentID>

  <Salary>13000</Salary>

 </tblEmployee>

 <tblEmployee>

  <ID>3</ID>

  <FirstName>Eric</FirstName>

  <LastName>Haglund</LastName>

  <DepartmentID>4</DepartmentID>

  <Salary>12000</Salary>

 </tblEmployee>

 <tblEmployee>

  <ID>4</ID>

  <FirstName>Julie</FirstName>

  <LastName>Ryan</LastName>

  <DepartmentID>1</DepartmentID>

  <Salary>4000</Salary>

 </tblEmployee>

 <tblEmployee>

  <ID>5</ID>

  <FirstName>Richard</FirstName>

1 ... 72 73 74 75 76 77 78 79 80 ... 88
На этой странице вы можете бесплатно читать книгу Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус бесплатно.

Оставить комментарий