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

на главную

Жанры

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

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

Шрифт:

Чтобы создать приложение для просмотра данных по одной записи из таблицы tblCustomer, выполните ряд действий.

 1. В Visual Studio .NET создайте новый проект на основе Windows Forms и откройте новую форму Form1. Создайте в ней два текстовых поля, txtFirstName и txtLastName, на основе элемента управления TextBox.

2. Создайте объекты SqlConnection, SqlDataAdapter и DataSet для извлечения данных о клиентах из таблицы tblCustomer. (Необходимые для этого действия аналогичны действиям из предыдущего примера.) Как и прежде, не забудьте вызвать метод Fill объекта SqlDataAdapter в коде для инициализации объекта DataSet. (В данном примере объект DataSet имеет имя DsCustomer1.

Прим. ред.)

3. Теперь нужно создать связь между двумя текстовыми полями (txtFirstName и txtLastName) и соответствующими полями в базе данных. Для этого щелкните на текстовом поле txtFirstName и в группе свойств Data выберите подгруппу свойств (DataBindings). Это свойство содержит несколько свойств, которые следует установить для связывания данных таблицы с текстовым полем.

4. Выберите поле FirstName таблицы tblCustomer для свойства Text текстового поля txtFirstName. Для этого щелкните в правой части поля со списком возле свойства Text. Выберите набор данных DsCustomer1, таблицу tblCustomer и поле FirstName, как показано на рис. 1.14.

РИС. 1.14. Создание связи между данными из поля базы, данных и текстовым полем с помощью свойств (DataBindings)

5. Аналогично свяжите текстовое поле txtLastName с полем LastName таблицы tblCustomer.

6. Запустите приложение, в текстовых полях которого будут отображены имя и фамилия первого клиента.

Возможности этого приложения весьма ограниченны, потому что в нем можно просматривать только по одной записи и нельзя редактировать данные. Однако оно является базовым приложением, на основе которого будут созданы несколько других примеров с более широкими возможностями рабочего приложения для полномасштабной работы с базами данных.

Даже в таком ограниченном примере очевидны преимущества способов связывания данных на платформе .NET: они более гибки, чем аналогичные способы в Visual Basic 6. Например, упомянутая гибкость достигается за счет способности управлять процессом связывания с помощью кода.

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

1. Создайте две кнопки, btnNext и btnPrevious, для перехода к следующей и предыдущей записям.

2. Дважды щелкните на кнопке btnNext и в автоматически появившемся окне редактирования кода с определением процедуры btnNext_Click вставьте следующий код:

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

 ByVal e As System.EventArgs) Handles btnNext.Click

 Me.BindingContext(DsCustomer1, "tblCustomer").Position += 1

End Sub

3. Дважды щелкните на кнопке btnPrevious и в автоматически появившемся окне редактирования кода с определением процедуры btnPrevious_Click вставьте код

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

 ByVal e As System.EventArgs) Handles btnPrevious.Click

 Me.BindingContext(DsCustomer1, "tblCustomer").Position -= 1

End Sub

4. Снова запустите приложение и убедитесь в том, что с помощью созданных кнопок можно переходить к следующей и предыдущей записям. (Учтите, что эта программа

будет работать только при наличии нескольких записей в таблице.)

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

Таким образом, при создании приложения, рассчитанного на работу с базами данных, для составления запросов, обновления данных, связывания элементов управления пользовательского интерфейса с данными и перехода к полям таблицы не рекомендуется использовать один громоздкий объект Data. Вместо него в Windows Forms и ADO.NET предусмотрено несколько отдельных специализированных объектов. Выделение функций доступа к данным – ключевое достоинство платформы .NET Framework (этот вопрос подробно рассматривается в следующих главах).

Объект BindingContext является членом семейства объектов Windows Forms (а точнее, членом пространства имен System.Windows.Forms платформы .NET Framework) и содержит множество полезных свойств и методов. Например, объект BindingContext можно использовать для определения количества записей в источнике данных так, как описано ниже.

1. Создайте ярлык lblDataStatus с помощью элемента управления Label с пустой строкой в свойстве Text.

2. В коде формы создайте подпрограмму ShowDataStatus с указанным ниже кодом, которая будет отображать текущее расположение записи и общее количество записей в ярлыке lblDataStatus.

Private Sub ShowDataStatus

 With Me.bindingContext(DsCustomer1, "tblCustomer")

lblDataStatus. Text = "Record " + s.Position + 1 & " of " & .Count

 End With

End Sub

3. Поместите вызов этой подпрограммы ShowDataStatus в подпрограммы обработки событий загрузки формы (Forml_Load) и щелчков мыши на обеих кнопках (btnNext_Click и btnPrevious_Click). Это позволит отображать обновленную информацию о текущем количестве записей и текущей записи при загрузке формы и после каждого перемещения к другой записи. Учтите, что отсчет текущего номера записи (свойство Position объекта DataBindings) начинается с нуля (как и во всех коллекциях на платформе.NET). Поэтому для получения реального номера записи следует прибавить к нему 1.

4. Запустите приложение и попробуйте перейти к разным записям таблицы. Тогда в ярлыке будет отображено общее количество записей в таблице и номер текущей записи.

Программный способ связывания данных

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

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

Магия чистых душ 2

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.56
рейтинг книги
Магия чистых душ 2

Камень

Минин Станислав
1. Камень
Фантастика:
боевая фантастика
6.80
рейтинг книги
Камень

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

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

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

Провинциал. Книга 7

Лопарев Игорь Викторович
7. Провинциал
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Провинциал. Книга 7

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5

Темный Лекарь 3

Токсик Саша
3. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 3

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Долг

Кораблев Родион
7. Другая сторона
Фантастика:
боевая фантастика
5.56
рейтинг книги
Долг

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Путь (2 книга - 6 книга)

Игнатов Михаил Павлович
Путь
Фантастика:
фэнтези
6.40
рейтинг книги
Путь (2 книга - 6 книга)

Гром над Империей. Часть 1

Машуков Тимур
5. Гром над миром
Фантастика:
фэнтези
5.20
рейтинг книги
Гром над Империей. Часть 1

Великий род

Сай Ярослав
3. Медорфенов
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Великий род