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

Тут можно читать онлайн Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Обработка баз данных на Visual Basic®.NET
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-8459-0512-5
  • Рейтинг:
    3.3/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

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

Обработка баз данных на Visual Basic®.NET - описание и краткое содержание, автор Джеффри Мак-Манус, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000. Затем рассматриваются способы использования основных объектов модели ADO.NET для доступа к данным в реляционных базах данных. Благодаря подробным примерам, читатели могут изучить способы использования основных свойств и методов, а также узнать о более сложных компонентах и технологиях. Многочисленные листинги с кодом на языке Visual Basic .NET иллюстрируют используемые концепции, а бизнес-ситуации показывают практическую область их применения.

Обработка баз данных на Visual Basic®.NET - читать онлайн бесплатно полную версию (весь текст целиком)

Обработка баз данных на Visual Basic®.NET - читать книгу онлайн бесплатно, автор Джеффри Мак-Манус
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Подпрограмма DisplayRelations циклически обходит все отношения свойства Relations объекта DataSet и выводит в текстовом поле имя отношения, имя родительской таблицы и ее поле, которое входит в созданное отношение, а также имя дочерней таблицы и ее поле, которое входит в созданное отношение.

НА ЗАМЕТКУ

Для создания более обобщенной версии подпрограммы DisplayRelations можно было бы вставить код циклического обхода всех полей в свойствах-массивах РаrentColumns и ChildColumns, а не просто отображать их первые элементы.

После компоновки проекта DataSetCode и запуска полученного приложения щелкните на кнопке Create Relations, и в текстовом поле будет выведена информация о вновь созданном отношении между таблицами Employees и Departments.

Кроме коллекции Relations объекта DataSet, которая содержит все отношения, определенные между таблицами объекта DataSet, каждый объект DataTable также содержит две коллекции отношений (т.е. два свойства): ParentRelations и ChildRelations, которые содержат отношения между данным объектом DataTable и связанной с ним другой (дочерней или родительской) таблицей.

После создания отношения между таблицами можно организовать доступ к связанным данным в них. Начните с создания кнопки и вставки кода, приведенного в листинге 5.7.

1. Создайте новую кнопку непосредственно под кнопкой Create Relations, перетаскивая ее из панели элементов управления.

2. В окне свойств Properties укажите значение btnChildRows для свойства (Name) и значение Child Rows для свойства Text.

3. Вставьте код, показанный в листинге 5.7.

Листинг 5.7. Код отображения родительских и дочерних данных из связанных таблиц

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

ByVal e As System.EventArgs) Handles btnChildRows.Click

Dim rel As DataRelation CreateDataSet()

AddData()

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

rel = dsEmployeeInfо.Relations.Add("relDepartmentEmployees", _

dsEmployeeInfo.Tables("Departments").Columns("ID"), _

dsEmployeeInfo.Tables("Employees").Columns("DepartmentID"))

DisplayChildRows(dsEmployeeInfo.Tables("Departments"))

End Sub

Private Sub DisplayChidRows(ByVal dt As DataTable)

Dim rel As DataRelation

Dim relatedRows() As DataRow

Dim row As DataRow

Dim col As DataColumn

Dim i As Integer

Dim rowData As String

Me.lstOutput.Items.Add("")

Me.lstOutput.Items.Add("CHILD ROWS")

For Each row In dt.Rows

For Each rel In dt.ChildRelations

Me.lstOutput.Items.Add(_

dt.TableName & ": " & _

rel.ParentColumns(0).ColumnName & _

"= " & row(rel.ParentColumns(0).ToString))

relatedRows = row.GetChildRows(rel)

' Вывод значений записей.

For i = 0 To relatedRows.GetUpperBound(0)

rowData = "****" & _

rel.ChildTable.TableName & ":"

For Each col In rel.ChildTable.Columns

rowData = rowData & " " & _

relatedRows(i)(col.ToString)

Next col

Me.lstOutput.Items.Add(rowData)

Next i

Next rel

Next row

End Sub

Подпрограмма btnChildRows_Click для обработки щелчков на кнопке Child Rows сначала создает объект DataSet и объекты DataTable с помощью подпрограммы CreateDataSet (код которой приведен в листинге 5.1), а затем наполняет их данными с помощью подпрограммы AddData (код которой приведен в листинге 5.2). После этого между таблицами Employees и Departments создается отношение с помощью кода, который приведен в листинге 5.6. Наконец, для вывода данных из записей в текстовом поле формы вызывается подпрограмма DisplayChildRows, которой в качестве аргумента (родительской таблицы) передается таблица Departments.

Подпрограмма DisplayChildRows содержит трижды вложенный цикл для отображения всех полей из каждой связанной дочерней таблицы (в данном случае только одной) для каждой записи родительской таблицы. При этом каждая запись родительской таблицы передается циклу как аргумент, происходит обход всех отношений, определенных в свойстве ChildRelations таблицы, отображается имя таблицы, имя поля в родительской таблице, а также значение поля в текущей записи. Затем вызывается метод GetChildRows с текущим отношением в качестве аргумента и возвращается массив объектов DataRow, содержащих дочерние записи. Для каждой записи отображаются все поля с префиксами в виде четырех звездочек и имени дочерней таблицы.

НА ЗАМЕТКУ

Некоторые версии метода GetChildRows принимают дополнительный аргумент, который указывает на используемую версию возвращаемых записей с помощью членов перечисления DataRowVersion из табл. 5.2. Аналогичные методы предусмотрены для извлечения родительской записи (или нескольких родительских записей) по заданной дочерней записи.

Здесь у читателя может возникнуть вопрос: почему упоминается несколько родительских записей? Разве дочерняя запись может иметь несколько родительских записей? Дело в том, что кроме родительских полей, заданных на основе полей с уникальными значениями, могут создаваться родительские поля на основе полей с повторяющимися значениями. Поэтому в таких случаях вместо одной родительской записи (GetParentRow) приходится извлекать несколько родительских (GetParentRows).

РИС 53 Результаты отображения родительских и дочерних записей из таблиц - фото 60

РИС. 5.3. Результаты отображения родительских и дочерних записей из таблиц Employees и Departments

После компоновки проекта DataSetCode и запуска полученного приложения щелкните на кнопке Child ROWS, и в текстовом поле будут выведены значения всех родительских записей из таблицы Employees для каждой родительской записи из таблицы Departments (рис. 5.3).

Ограничения

Ограничениями называются правила, которые вводятся для поддержания целостности данных в таблице. В модели ADO.NET применяется два типа ограничений целостности данных: UniqueConstraint и ForeignKeyConstraint. Ограничение UniqueConstraint гарантирует, что все значения в указанных полях будут уникальны в рамках всей таблицы. Ограничение ForeignKeyConstraint определяет связь на основе первичного и внешнего ключа в двух таблицах и выполняемые действия в случае добавления, удаления или изменения родительской записи (т.е. первичного ключа). При нарушении заданных ограничений генерируется исключительная ситуация.

Учтите, что ограничения применяются только тогда, когда свойство EnforceConstraints объекта DataSet имеет значение True, которое используется по умолчанию.

Хотя ограничения можно создавать непосредственно, довольно часто они создаются косвенно. Фактически в приведенном ранее примере уже было создано несколько ограничений. Объект UniqueConstraint автоматически создается и включается в коллекцию Constraints объекта DataTable, если для свойства Unique объекта DataColumn задано значение True. Кроме того, объекты UniqueConstraint и ForeignKeyConstraint автоматически создаются при создании отношения между двумя таблицами. В таком случае объект UniqueConstraint создается для связанных полей в родительской таблице, а объект ForeignKeyConstraint — для связанных полей в дочерней таблице.

НА ЗАМЕТКУ

Конечно, объект DataRelation можно создать без определения ограничений, но эффективность такого способа весьма спорна.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Джеффри Мак-Манус читать все книги автора по порядку

Джеффри Мак-Манус - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Обработка баз данных на Visual Basic®.NET отзывы


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x