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

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

Читать бесплатно Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET. Жанр: Программирование издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

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 для отображения содержимого таблицы с помощью циклического обхода всех записей таблицы с указанием имени поля и значения в нем. Этот подход несколько отличается от описанных ранее.

• Переменная row создается с указанием типа записи DepartmentDS.DepertmentsRow, а не как универсальный объект DataRow.

• Таблица Departments доступна как свойство объекта ds.Departments, а не как элемент коллекции таблиц Tables, т.е. ds.Tables("Departments").

• Поля таблицы доступны как свойства объекта-таблицы, например ds.Column и ds.Departments.DepartmentNameColumn, а не как элементы коллекции полей Columns, т.е. ds.Tables("Departments").Columns("ID") и ds.Tables("Departments").Columns("DepartmentName").

• Значения полей доступны как свойства объекта-записи, например row.ID и row. DepartmentName, а не как элементы коллекции значений Items объекта-записи Rows, т.е. row("ID") и row("DepartmentName").

На рис. 7.8 показано, как типизированные свойства (например, DepartmentName) представлены в контекстном меню средства IntelliSense, которое ускоряет процесс создания кода.

РИС. 7.8. Контекстное меню средства IntelliSense со свойствами типизированного объекта DataSet

Резюме

В этой главе рассматривается несколько важных аспектов создания приложений баз данных в модели ADO.NET. Обработка параллельных попыток доступа к данным является важным компонентом многопользовательской системы, особенно при работе с набором данных в неподключенном режиме. Отображения таблиц и полей существенно улучшают читабельность и упрощают процесс сопровождения кода. С помощью объектов-представлений одни и те же данные можно представлять по-разному со своим собственным фильтром и параметрами сортировки. Наконец, строго типизированный объект — набор данных позволяет применять усовершенствованные функции и повышает читабельность кода при использовании в особых ситуациях.

Вопросы и ответы

Мне понятно, как определить нарушение параллельного доступа, но как его устранить?

Ответ на этот вопрос зависит от конкретного приложения. Во-первых, при обнаружении нарушения параллельного доступа можно повторно отправить запрос к базе данных и начать работу с начала. Во-вторых, можно позволить второму пользователю переопределить изменения, внесенные первым пользователем. В-третьих, право окончательного выбора можно предоставить пользователю, предлагая ему все три набора данных: исходные значения, текущие значения и измененные им значения. Наконец, можно предложить алгоритм или логические правила для определения оптимального варианта самим приложением. При этом определяющим фактором выбора может быть приоритет или роль пользователя (например, изменения, внесенные руководителем, имеют более высокий приоритет, чем внесенные рядовым сотрудником). В модели ADO.NET и среде Visual Studio .NET предусмотрены специальные инструменты для обнаружения нарушений при параллельном доступе к данным. Разработчику остается только выбрать наиболее подходящие для создаваемого приложения.

Всегда ли следует использовать типизированные наборы данных?

Как обычно, ответ на этот вопрос зависит от конкретного приложения. В данной главе описаны преимущества типизированных наборов данных, но иногда предпочтительнее использовать нетипизированные наборы данных. Это верно в тех случаях, когда схема набора данных не известна или может изменяться. Классическим примером такой ситуации является использование незапланированных запросов, которые создаются пользователем при работе с приложением. Кроме того, схема может находиться в XML-файле, содержимое которого не известно во время создания приложения и генерации типизированного набора данных.

Еще одним недостатком использования типизированных наборов данных является необходимость повторной генерации и компиляции типизированных объектов — наборов данных при изменении схемы данных.

Наконец, стандартный нетипизированный объект DataSet настолько прост в использовании, что он может служить альтернативным вариантом для работы с данными без применения какой-то определенной схемы. Дополнительными преимуществами объекта DataSet является возможность работы с данными в формате XML.

ГЛАВА 8

Работа с проектом базы данных среде Visual Studio .NET

Проект базы данных — это особый тип проекта Visual Studio .NET, предназначенный для создания и управления SQL-сценариями баз данных.

Чтобы разработка приложений для работы с базами данных была проще и удобнее, в последнюю версию Visual Studio .NET включено множество новых полезных инструментов, а также усовершенствованных прежних инструментов, которые присутствовали в ранних версиях программы.

Инструменты Visual Studio .NET для работы с базой данных позволяют пользователю, не выходя за пределы среды Visual Studio .NET, быстро создавать, изменять и тестировать объекты баз данных: таблицы, представления, запросы, хранимые процедуры и т.д. Главное достоинство данного продукта состоит в существенном повышении эффективности проектирования и создания программных продуктов. Кроме того, значительно упростилась установка и лицензирование программы.

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

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

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


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

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


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*