Читаем Обработка баз данных на Visual Basic®.NET полностью

16. В диалоговом окне Generate the SQL statements укажите команду SELECT * FROM tblOrder для загрузки данных в объект — набор данных.

17. По окончании работы с программой-мастером Data Adapter Configuration Wizard укажите значение daOrders для свойства (Name) для созданного объекта — адаптера данных.

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

Imports System

Imports System.Data

Imports System.Data.SqlClient

Imports System.Data.OleDb

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

Листинг 7.7. Код объединения данных из источников данных разного типа

Private dvOrders As New DataView()

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

 ByVal e As System.EventArgs) Handles MyBase.Load

 Dim rel As DataRelation

 ' Вставка таблиц в набор данных

 dsCustOrders. daCustomers.Fill(dsCustOrders, "Customers")

 daOrders.Fill(dsCustOrders, "Orders")

 ' Создание отношения между таблицами.

 rel = dsCustOrders.Relations.Add("relCustOrders", _

  dsCustOrders.Tables("Customers").Columns("ID"), _

  dsCustOrders.Tables("Orders").Columns("CustomerID"))

 ' Указание первичного ключа для таблицы Customers.

 Dim pk(0) As DataColumn

 pk(0) = dsCustOrders.Tables("Customers").Columns("ID")

 dsCustOrders.Tables("Customers").PrimaryKey = pk

 ' Указание сортировки по умолчанию для метода Find.

 dsCustOrders.Tables("Customers").DefaultView.Sort = "ID"

End Sub

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

 ByVal e As System.EventArgs) Handles btnFind.Click

 Dim RowNum As Integer

 Dim dvRow As DataRowView

 Dim i As Integer

 If IsNumeric(txtCistID.Text) Then

  RowNum = dsCustOrders.Tables("Customers"). _

  DefaultView.Find(txtCustID.Text)

  If RowNum <> -1 Then

   dvRow = dsCustOrders.Tables("Customers").DefaultView(RowNum)

   ' Вставка в поле со списком имен полей из таблицы Customer.

   lstCustomer.Items.Clear()

   For i = 0 To dsCustOrders.Tables("Customers").Columns.Count – 1

    lstCustomer.Items.Add(dvRow.Item(i))

   Next

   grdOrders.CaptionText = _

    "Orders for customer #" & txtCustID.Text

   ' Извлечение связанных дочерних записей для

   ' указанного клиента таблицы Customer.

   dvOrders = dvRow.CreateChild("relCustOrders")

   grdOrders.DataSource = dvOrders

  Else

   MessageBox.Show( _

    "CustomerID not found – Please try again.")

   ' "Клиент CustomerID не найден – Попробуйте еще раз."

   txtCustID.Clear()

  End If

 Else

  Beep()

 End If

End Sub

Все параметры источников данных задаются в подпрограмме frmShowOrders_Load. Затем создаются две таблицы для набора данных DataSet и отношение DataRelation между ними. Наконец, задаются значения свойств РrimaryKey и Sort для таблицы Customers и его представления по умолчанию DefaultView, чтобы для поиска записей можно было использовать метод Find.

Щелчок на кнопке Find приводит к выполнению нескольких операций, которые определены в коде подпрограммы btnFind_Click. После проверки числового типа значения в поле txtCustID начинается поиск этого значения в представлении DefaultView таблицы Customers. Если указанное значение найдено, то в поле со списком DataRowView будут показаны значения всех полей искомой записи с заданным идентификатором из таблицы Customers, а в сетке данных справа будут показаны ее дочерние записи из таблицы Orders.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных