`
Читать книги » Книги » Компьютеры и Интернет » Программирование » Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET

Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET

1 ... 76 77 78 79 80 ... 88 ВПЕРЕД
Перейти на страницу:

   <FirstName>Carole</FirstName>

   <LastName>Vermeren</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>222</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2033</ID>

   <FirstName>Cathy</FirstName>

   <LastName>Johnson</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>13000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2036</ID>

   <FirstName>Richard</FirstName>

   <LastName>Halpin</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>10000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2040</ID>

   <FirstName>Randy</FirstName>

   <LastName>Hobaica</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>18000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2043</ID>

   <FirstName>Brad</FirstName>

   <LastName>Townsend</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>12000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2044</ID>

   <FirstName>Jennifer</FirstName>

   <LastName>Eves</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>26000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>204V</ID>

   <FirstName>Angela</FirstName>

   <LastName>Stefanac</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>16000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2048</ID>

   <FirstName>Marjorie</FirstName>

   <LastName>Bassett</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>34000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2052</ID>

   <FirstName>Mike</FirstName>

   <LastName>Doberstein</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>42000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2056</ID>

   <FirstName>Mikki</FirstName>

   <LastName>Lemay</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>50000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2060</ID>

   <FirstName>Richard</FirstName>

   <LastName>Rosenthal</LastName>

   <DepartmentID>2</DepartmentID>

   <Salary>58000</Salary>

  </tblEmployee>

 </tblDepartment>

 <tblDepartment>

  <ID>3</ID>

  <DepartmentName>Sales</DepartmentName>

  <tblEmployee>

   <ID>2037</ID>

   <FirstName>Kathleen</FirstName>

   <LastName>Johnson</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>18000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2041</ID>

   <FirstName>Matthew</FirstName>

   <LastName>Haglund</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>30000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2045</ID>

   <FirstName>Steve</FirstName>

   <LastName>Marshall</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>42000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2049</ID>

   <FirstName>Joe</FirstName>

   <LastName>Chideya</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>54000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2053</ID>

   <FirstName>Terri</FirstName>

   <LastName>Woodruff</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>66000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2057</ID>

   <FirstName>Randy</FirstName>

   <LastName>Nelson</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>78000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2061</ID>

   <FirstName>Mike</FirstName>

   <LastName>Woodruff</LastName>

   <DepartmentID>3</DepartmentID>

   <Salary>90000</Salary>

  </tblEmployee>

 </tblDepartment>

 <tblDepartment>

  <ID>4</ID>

  <DepartmentName>Marketing</DepartmentName>

  <tblEmployee>

   <ID>2034</ID>

   <FirstName>Eric</FirstName>

   <LastName >Haglund</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>12000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2038</ID>

   <FirstName>Sorel</FirstName>

   <LastName>Polito</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>28000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2042</ID>

   <FirstName>Cathy</FirstName>

   <LastName>Vermeren</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>0</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2046</ID>

   <FirstName>Laura</FirstName>

   <LastName>Davidson</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>60000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2050</ID>

   <FirstName>Katie</FirstName>

   <LastName>Chideya</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>76000</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2054</ID>

   <FirstName>Cathy</FirstName>

   <LastName>Rosenthal</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>5555</Salary>

  </tblEmployee>

  <tblEmployee>

   <ID>2058</ID>

   <FirstName>Kathleen</FirstName>

   <LastName>Husbands</LastName>

   <DepartmentID>4</DepartmentID>

   <Salary>108000</Salary>

  </tblEmployee>

 </tblDepartment>

</NewDataSet>

Создание объекта XmlReader с помощью объекта Command

В главе 4, "Модель ADO.NET: провайдеры данных", описываются способы работы с объектом Command, который является ключевым объектом — провайдером данных на платформе .NET. В ней рассматриваются способы выполнения команд на основе объектов ExecuteReader, ExecuteScalar и ExecuteNonQuery. Хотя все провайдеры данных на платформе .NET реализуют эти методы, объект SqlCommand имеет дополнительный метод ExecuteXmlReader, который используется для извлечения и доступа к XML-данным из СУБД SQL Server.

Метод ExecuteXmlReader возвращает объект XmlReader точно так же, как он возвращает объект DataReader.

Для демонстрации применения метода ExecuteXmlReader вернитесь к проекту ADO-XML и выполните следующее.

1. Включите в форму frmXML под кнопкой Write XML еще одну кнопку, перетаскивая ее из панели элементов управления.

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

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

Листинг 10.12. Код извлечения и обработки данных из СУБД SQL Server в формате XML

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

 ByVal e As System.EventArgs) Handles btnExecuteXML.Click

 Dim cn As New SqlConnection _

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

 Dim cmd As New SqlCommand _

  ("select * from stores for xml auto, elements", en)

 Dim reader As Xml.XmlReader

 Dim str As New System.Text.StringBuilder()

 cn.Open()

 ' Выполнение SQL-команды Select с предложением FOR XML.

 reader = cmd.ExecuteXmlReader()

 ' Поиск и извлечение данных из узлов-элементов.

 While reader.Read()

  Select Case reader.NodeType

  Case Xml.XmlNodeType.Element

   str.Append("<" & reader.Name & ">")

  Case Xml.XmlNodeType.EndElement

   str.Append("</" & reader.Name & ">" & ControlChars.CrLf)

  Case Xml.XmlNodeType.Text

   str.Append(reader.Value)

  Case Else

   ' В данном примере игнорируется.

  End Select

 End While

 MsgBox(str.ToString)

 сn.Close()

End Sub

Код в листинге 10.12 содержит пример упрощенного использования метода ЕхеcuteXmlReader в котором просто отображаются данные (вместе с дескрипторами) из таблицы базы данных pubs. СУБД SQL Server передается показанная ниже SQL-команда Select, в которой явно указаны возвращаемые поля в виде XML-элементов.

"select * from stores for xml auto, elements"

В таком случае обработка разных типов XML-узлов упрощается, потому что достаточно найти только начальный и конечный узлы, а текстовые узлы между ними будут содержать фактические данные. Более надежная обработка XML-документа основана на конструкции Select Case, в которой учтены узлы всех типов. После щелчка на кнопке ExecuteXMLReader будет выполнен код из листинга 10.12 и на экране появится диалоговое окно, которое показано на рис. 10.2.

1 ... 76 77 78 79 80 ... 88 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)