Чтение онлайн

на главную - закладки

Жанры

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

Прайс Кевин Т.

Шрифт:

Однако при использовании типизированного набора данных все свойства имеют специализированные значения для заданной схемы, а потому проверка типов выполняется еще во время создания приложения. Соответствующий код для типизированного набора данных DataSet с таблицей Customers будет иметь вид

dsCustomers.Customers(row).FirstName = NewValue

Обратите внимание, что объект-таблица Customers теперь является специализированным свойством типизированного набора данных DataSet, а поле FirstName — специализированным свойством типизированного объекта Customers.

Продемонстрируем кратко, как в редакторе кода среды Visual Studio .NET используется средство IntelliSense.

Вернемся к таблице Departments для демонстрации этого способа работы на примере проекта DataSetCode из главы 5, "ADO.NET: объект DataSet".

1. Откройте проект DataSetCode в среде Visual Studio .NET.

2. В форме под кнопкой Data Views создайте кнопку, перетаскивая ее из панели элементов управления.

3. В окне Properties укажите значение btnTypedDataSet для свойства (Name) и значение Typed DataSet для свойства Text этой кнопки.

Теперь нужно включить в проект используемую схему: либо обратиться к уже готовому файлу с расширением .xsd, либо создать новый с помощью компонентов вкладки Data панели элементов управления.

1. Вставьте в форму новый компонент SqlDataAdapter. В диалоговом окне программы-мастера Data Adapter Configuration Wizard выберите подключение к базе данных Novelty. Затем в диалоговом окне Choose a Query Type выберите переключатель Use SQL statements. В диалоговом окне Generate the SQL statements укажите команду SELECT * FROM tblDepartment для загрузки данных в объект — набор данных. По окончании работы с программой-мастером Data Adapter Configuration Wizard укажите значение daDepartments для свойства (Name) для созданного объекта — адаптера данных.

2. Откройте диалоговое окно Generate DataSet (Создать набор данных), выбрав команду меню Data→Generate DataSet или щелкнув правой кнопкой мыши на форме и выбрав в контекстном меню команду Generate DataSet. В группе переключателей Choose a dataset (Выбрать набор данных) выберите переключатель New (Создать), введите в текстовом поле имя DepartmentDS, установите флажок Add this dataset to the designer (Включить этот набор данных в приложение) и щелкните на кнопке OK.

3. Укажите значение dsDepartments для свойства (Name) для созданного объекта — набора данных.

После выполнения этих действий генератор набора данных включит в проект файл схемы DepartmentDS.xsd и файл DepartmentDS.vb, который реализует специализированные классы набора данных DataSet. Файлы отображаются только после щелчка на кнопке Show all files (Показать все файлы) в верхней части окна Solution Explorer.

4. Щелкните дважды на файле DepartmentDS.xsd в окне Solution Explorer для отображения диалогового окна редактирования схемы XML.

5. Попробуйте внести небольшие изменения в имена элементов схемы. Вместо имени tblDepartment укажите в самом верхнем левом текстовом поле имя Departments, как показано на рис. 7.7.

РИС. 7.7. Схема DepartmentsDS в окне

редактирования схемы

6. Щелкните правой кнопкой мыши на окне редактирования схемы и убедитесь в том, что в контекстном меню установлен флажок параметра Generate Dataset. Он устанавливается по умолчанию, но если он все же не установлен по какой-то причине, то установите его снова.

7. Сохраните схему и закройте окно редактирования схемы. В результате этих действий будет автоматически сгенерирован файл DepartmentsDS.vb.

НА ЗАМЕТКУ

Для просмотра содержимого файла DepartmentsDS.vb откройте его в окне редактирования кода. Учтите, что для указанного имени таблицы Departments генератор кода в дополнение к уже имеющемуся типизированному объекту создаст следующие объекты:

DepartmentsDataTable

DepartmentsDataRow

DepartmentsRowChangeEvent
 

Теперь следует создать код для использования типизированного объекта DepartmentsDS, который показан в листинге 7.8.

Листинг 7.8. Код отображения содержимого типизированного объекта DepartmentsDS

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

 ByVal e As System.EventArgs) Handles btnTypedDataSet.Click

 daDepartments.Fill(dsDepartments, "Departments")

 DisplayDepartments(dsDepartments)

End Sub

Private Sub DisplayDepartments(ByVal ds As DepartmentsDS)

 Me.lstOutput.Items.Clear

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

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

 ' Каждое поле теперь является свойством объекта DepartmentsDS.

 Dim row As DepartmentsDS.DepartmentsRow

 For Each row In ds.Departments.Rows

Me.lstOutput.Items.Add( _

ds.Departments.IDColumn.ColumnName _

& ": " & row.ID.ToString)

Me.lstOutput.Items.Add( _

ds.Departments.DepartmentNameColumn.ColumnName _

& ": " & row.DepartmentName)

 Next

End Sub

В подпрограмме btnTypedDataSet_Click сначала используется метод Fill объекта daDepartments для вставки данных в таблицу Department. Затем вызывается подпрограмма DisplayDepartments для отображения содержимого таблицы с помощью циклического обхода всех записей таблицы с указанием имени поля и значения в нем. Этот подход несколько отличается от описанных ранее.

Поделиться:
Популярные книги

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Я сделаю это сама

Кальк Салма
1. Магический XVIII век
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Я сделаю это сама

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Боярышня Дуняша

Меллер Юлия Викторовна
1. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Дуняша

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Леди для короля. Оборотная сторона короны

Воронцова Александра
3. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Леди для короля. Оборотная сторона короны

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Невест так много. Дилогия

Завойчинская Милена
Невест так много
Любовные романы:
любовно-фантастические романы
7.62
рейтинг книги
Невест так много. Дилогия

Идеальный мир для Социопата 3

Сапфир Олег
3. Социопат
Фантастика:
боевая фантастика
6.17
рейтинг книги
Идеальный мир для Социопата 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Крещение огнем

Сапковский Анджей
5. Ведьмак
Фантастика:
фэнтези
9.40
рейтинг книги
Крещение огнем

Камень Книга двенадцатая

Минин Станислав
12. Камень
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Камень Книга двенадцатая