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

Доступ к данным с помощью объекта DataTable

Поскольку объект DataSet и содержащийся в нем объект DataTable всегда наполнены данными и не подключены к источнику данных, метод доступа к записям данных в них существенно отличается от методов доступа в ADO и других моделях доступа к данным (например, ODBC, DAO или RDO). Поскольку все данные доступны одновременно, в модели ADO.NET не существует понятия текущей записи. Поэтому нет никаких свойств или методов для перемещения от одной записи к другой. Каждый объект DataTable имеет свойство Rows, которое является набором объектов DataRow. Доступ к отдельному объекту осуществляется с помощью индекса или оператора For Each. Таким образом, в модели ADO.NET предлагается более простой и эффективный способ доступа и перемещения, аналогичный доступу к элементам массива.

В листинге 5.4 показан код подпрограммы DisplayDataSet, которая отображает содержимое ранее созданных таблиц с загруженными в них данными. В ней применяется циклический обход всех элементов коллекции, т.е. коллекций Rows и Columns, для отображения содержимого таблицы Employees. Далее используется альтернативный метод доступа к записям и полям с помощью числового индекса для отображения содержимого таблицы Departments.

ЛИСТИНГ 5.4. Код отображения данных в объектах DataTable

Private Sub DisplayDataSet()

 Dim dr As DataRow

 Dim dc As DataColumn

 Me.lstOutput.Items.Add("DISPLAY DATASET")

 Me.lstOutput.Items.Add("============")

 ' Отображение данных из таблицы Employees.

 For Each dr In dsEmployeeInfo.Tables("Employees").Rows

  For Each dc In _

   dsEmployeeInfo.Tables("Employees").Columns

   Me.lstOutput.Items.Add( _

    dc.ColumnName & ": " & dr(dc))

  Next

  Me.lstOutput.Items.Add ("============")

 Next

 Me.lstOutput.Items.Add("")

 ' Отображение данных из таблицы Departments.

 ' Пример использования индексов вместо оператора For Each.

 Dim row As Integer

 Dim col As Integer

 For row = 0 To dsEmployeeInfo.Tables("Departments").Rows.Count – 1

  For col = 0 To dsEmployeeInfo.Tables("Departments").Columns.Count – 1

   Me.lstOutput.Items.Add( _

    dsEmployeeInfo.Tables("Departments").Columns(col).ColumnName & ":" & _

    dsEmployeeInfo.Tables("Departments").Rows(row)(col))

  Next col

  Me.lstOutput.Items.Add("============")

 Next row

End Sub

Аналогично можно создать подпрограмму более общего типа для обхода не только записей и полей, но и таблиц объекта DataSet, как показано в листинге 5.5.

ЛИСТИНГ 5.5. Код обхода таблиц из объекта DataSet

Private Sub DisplayDataSet(ByVal ds As DataSet)

 ' Общая подпрограмма для отображения содержимого объекта DataSet.

 ' Отображаемый объект DataSet передается как параметр.

 Dim dt As DataTable

 Dim dr As DataRow

 Dim dc As DataColumn

 Me.lstOutput.Items.Add("DISPLAY DATASET")

 Me.lstOutput.Items.Add("============")

 For Each dt In ds.Tables

  Me.lstOutput.Items.Add(")

  Me. lstOutput.Items.Add("TABLE: " & dt.TableName)

  Me.lstOutput.Items.Add(" ")

  For Each dr In dt. Rows

   For Each dc In dt.Columns

    Me.lstOutput.Items.Add(dc.ColumnName S ": " & dr(dc))

   Next

   Me.lstOutput.Items.Add ("============")

  Next

 Next dt

End Sub

Обратите внимание, что здесь перегружается уже упомянутый ранее метод DisplayDataSet, который теперь принимает в качестве параметра объект DataSet.

Попробуйте запустить полученное приложение; для этого введите упомянутый ранее код в проект DataSetCode и щелкните на кнопке Create DataSet. В результате этого действия создается объект DataSet и наполняется данными, которые затем отображаются в текстовом поле формы, как показано на рис. 5.2.

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

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

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