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

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

 ByVal e As System.EventArgs) Handles btnFill.Click

 Dim da As New SqlDataAdapter()

 grdCustomersOrders.DataSource = Nothing

 ds = New DataSet()

 ' Создание команды SELECT.

 da.SelectCommand = New SqlCommand()

 da.SelectCommand.Connection = cn

 da.SelectCommand.CommandType = CommandType.Text

 da.SelectCommand.CommandText = _

  "select * from tblCustomer; select * from tblOrder"

 ' Указание информативных имен для таблиц.

 da.TableMappings.Add("Table", "Customers")

 da.TableMappings.Add("Table1", "Orders")

 ' Загрузка данных, da.Fill(ds)

 ' Создание отношения.

 ds.Relations.Add("Customer_Orders", _

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

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

 ' Отображение данных.

 grdCustomersOrders.DataSource = ds

End Sub


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

  ByVal e As System.EventArgs) Handles btnUpdate.Click

 ' Создание адаптеров данных.

 Dim daCustomers As New SqlDataAdapter( _

  "select * from tblCustomer", en)

 Dim daOrders As New SqlDataAdapter( _

  "select * from tblOrder", en)

 Dim cbCustomers As New SqlCommandBuilder(daCustomers)

 Dim cbOrders As New SqlCommandBuilder(daOrders)

 Try

  ' Внесение изменений в таблицы в "правильном"

  ' порядке (см. далее в тексте).

  Dim ChangedTable As New DataTable()

  ' Удаление записей в дочерней таблице.

  ChangedTable = _

   ds.Tables("Orders").GetChanges(DataRowState.Deleted)

  If Not ChangedTable Is Nothing Then

   daOrders.Update(ChangedTable)

  End If

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

  ChangedTable = ds.Tables("Customers").GetChanges

  If Not ChangedTable Is Nothing Then

   daCustomers.Update(ChangedTable)

  End If

  ' Новые или измененные записи в дочерней таблице.

  ChangedTable = _

   ds.Tables("Orders").GetChanges(DataRowState.Added _

   Or DataRowState.Modified)

  If Not ChangedTable Is Nothing Then

   daOrders.Update(ChangedTable)

  End If

 Catch ex As Exception

  MessageBox.Show(ex.Message)

 End Try

End Sub

Первая подпрограмма btnFill_Click считывает обе таблицы из базы данных посредством одного обращения к базе данных благодаря выполнению пакета команд SQL. В объекте CommandText отдельные команды пакета отделяются точкой с запятой.

Обратите внимание, что предлагаемые по умолчанию имена таблиц Table и Table1 в приведенных ниже строках кода отображаются на более информативные имена Customers и Orders.

' Указание информативных имен для таблиц.

da.TableMappings.Add("Table", "Customers")

da. TableMappings.Add("Table1", "Orders")

НА ЗАМЕТКУ

Более подробно способы отображения таблиц и полей рассматриваются в главе 7, "ADO.NET: дополнительные компоненты".

После вставки данных в набор данных ds между таблицами Customers и Orders создается отношение DataRelation, где Customers является родительской таблицей, a Orders — дочерней. Последняя строка кода в этой подпрограмме связывает набор данных DataSet с сеткой для отображения данных.

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

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

iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT