Введение в ADO.NET
Следующий шаг: отображение текущей позиции записи
В дополнение к предоставлению в вашей форме базовых инструментов для навигации вы можете предоставить некую индикацию текущего номера записи, а также общего числа записей в наборе данных. Вы можете сделать это, создав в форме объект метки, который будет отображать текущую позицию. Значение текущей позиции хранится в свойстве Position объекта BindingContext. Если вы хотите обновлять текущую позицию каждый раз, когда используются кнопки навигации, создайте в верхней части кода программы формы процедуру, которая будет определять текущую позицию и отображать ее в форме.
В следующем упражнении вы создадите процедуру с именем Count, которая объявляет две переменные, хранящие общее число записей и номер текущей записи, а затем отображает эту информацию с помощью свойства Text новой метки с именем lblCount.
Создание процедуры Count для отображения информации о текущей записи
- Отобразите форму, а затем используйте элемент управления Label и нарисуйте прямо под текстовым полем широкую метку.
- Установите свойство Name этой метки равным "lblCount".
- Установите свойство Text этой метки равным "Запись 0 из 0".
- Чтобы открыть Редактор кода, щелкните в Обозревателе решений на кнопке View Code (Просмотреть код).
- Прокрутите окно Редактор кода в самый верх и поместите курсор под тeгом "Windows Form Designer generated code" ("Код, автоматически созданный конструктором форм Windows"). Когда мы размещаем процедуру в классе Form, ее можно вызвать из любого места кода формы.
-
Введите в процедуре Count следующий код программы. Обратите внимание, что Visual Basic автоматически добавляет оператор End Sub.
Private Sub Count() Dim Records, Current As Integer Records = Me.BindingContext( _ DsInstructors1, "Instructors").Count Current = Me.BindingContext( _ DsInstructors1, "Instructors").Position + 1 lblCount.Text = "Запись " & Current.ToString & " из " & _ Records.ToString End Sub
Процедура Count присваивает значение свойства Count целочисленной переменной Records, а значение свойства Position плюс 1 присваивает целочисленной переменной Current. К значению Position добавляется 1 из-за того, что список записей нумеруется с 0 (как массивы и коллекции) - интересный момент для программистов, но не имеющий смысла для пользователя. Наконец, переменные Records и Current преобразуются в строки и вместе с форматирующей информацией копируются в свойство Text объекта lblCount. Текст в этой метке будет иметь следующий формат: "Запись x из y", где x - это значение переменной Current, а y - это значение переменной Records. Теперь в каждую из пяти процедур событий кнопок программы ADO Form добавьте вызов процедуры Count. Это важно, так как каждая кнопка выполняет действие, связанное с навигацией, поэтому метку следует обновлять каждый раз, когда меняется значение свойства Position.
-
Прокрутите окно вниз до процедуры события btnFirst_Click, добавьте в верхней части процедуры пустую строку и введите следующий вызов процедуры:
Count()
Ваша процедура события будет теперь выглядеть так (хотя первая строка может быть не разделена на две):
Private Sub btnFirst_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnFirst.Click Me.BindingContext(DsInstructors1, "Instructors").Position = 0 Count() End Sub
- Повторите этот шаг, добавив вызов процедуры Count в каждую из следующих процедур событий вашей программы: btnLast_Click, btnPrev_Click, btnNext_Click и btnLoad_Click. Теперь запустите программу и посмотрите, как работает статистика текущей записи.
-
Чтобы запустить программу, щелкните на кнопке Start (Начать).
Примечание. Готовая программа ADO Form лежит в папке c:\vbnet03sbs\Гл.19\ado form. -
Щелкните на кнопке Загрузка данных. Форма заполнится данными и появится имя первого инструктора. В дополнение к этому под текстовым полем в только что созданной вами новой метке появится текст Запись 1 из 9. Ваша форма должна выглядеть примерно так.
- Чтобы посмотреть, как меняется статистика текущей записи при просмотре записей инструкторов из набора данных, щелкните несколько раз на кнопке Следующая запись.
- Щелкните на кнопках Предыдущая запись, Первая запись и Последняя запись, чтобы убедиться, что процедура Count работает также и для этих навигационных кнопок.
- Чтобы остановить приложение ADO Form, щелкните на кнопке Закрыть в строке заголовка программы.
Вы написали на Visual Basic и ADO.NET вашу первую оболочку для базы данных. В этом примере вы использовали базу данных Microsoft Access. Однако вы обнаружите, что базовые методики доступа к данным других типов, включая базы данных SQL Server и базы данных, хранящихся в удаленных хранилищах, очень похожи на эту. Причина этой одинаковости заключается в распределенной архитектуре ADO.NET, которая использует один и тот же механизм для установления соединения, настройки адаптеров данных и создания наборов данных.
Хотя для установки базового соединения и настройки в сессии ADO.NET требуется выполнить несколько шагов, преимущество этой предварительной работы состоит в том, что манипуляции с информацией из базы данных становятся универсальным процессом. Это верно даже тогда, когда используемые вами данные получаются из удаленного источника или являются результатом объединения различных таблиц базы данных или форматов данных. В "Представление данных с помощью элемента управления DataGrid" вы продолжите работать с информацией из базы данных, и научитесь как использовать элемент управления DataGrid для одновременной работы с несколькими записями базы данных.
Доступ к данным в среде веб-форм
Техники доступа к данным, обсуждаемые в этой лекции, были разработаны для использования в среде форм Windows - базовой среде Visual Studio, которую вы использовали для создания большинства программ из этой книги. Однако вы также можете использовать техники программирования ADO.NET в среде веб-форм, что позволяет совместно использовать источники данных из интернета и писать оболочки для баз данных, которые доступны через веб-браузер. Большинство различий между средами форм Windows и веб-форм описано в "Использование веб-форм для создания интерактивных веб-приложений" . За дополнительной информацией по написанию приложений баз данных в среде веб-форм обратитесь к справочной системе Visual Basic.