Спонсор: Microsoft
Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3925 / 218 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 20:

Введение в ADO.NET

Следующий шаг: отображение текущей позиции записи

В дополнение к предоставлению в вашей форме базовых инструментов для навигации вы можете предоставить некую индикацию текущего номера записи, а также общего числа записей в наборе данных. Вы можете сделать это, создав в форме объект метки, который будет отображать текущую позицию. Значение текущей позиции хранится в свойстве Position объекта BindingContext. Если вы хотите обновлять текущую позицию каждый раз, когда используются кнопки навигации, создайте в верхней части кода программы формы процедуру, которая будет определять текущую позицию и отображать ее в форме.

В следующем упражнении вы создадите процедуру с именем Count, которая объявляет две переменные, хранящие общее число записей и номер текущей записи, а затем отображает эту информацию с помощью свойства Text новой метки с именем lblCount.

Создание процедуры Count для отображения информации о текущей записи

  1. Отобразите форму, а затем используйте элемент управления Label и нарисуйте прямо под текстовым полем широкую метку.
  2. Установите свойство Name этой метки равным "lblCount".
  3. Установите свойство Text этой метки равным "Запись 0 из 0".
  4. Чтобы открыть Редактор кода, щелкните в Обозревателе решений на кнопке View Code (Просмотреть код).
  5. Прокрутите окно Редактор кода в самый верх и поместите курсор под тeгом "Windows Form Designer generated code" ("Код, автоматически созданный конструктором форм Windows"). Когда мы размещаем процедуру в классе Form, ее можно вызвать из любого места кода формы.
  6. Введите в процедуре 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.

  7. Прокрутите окно вниз до процедуры события 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
  8. Повторите этот шаг, добавив вызов процедуры Count в каждую из следующих процедур событий вашей программы: btnLast_Click, btnPrev_Click, btnNext_Click и btnLoad_Click. Теперь запустите программу и посмотрите, как работает статистика текущей записи.
  9. Чтобы запустить программу, щелкните на кнопке Start (Начать).

    Примечание. Готовая программа ADO Form лежит в папке c:\vbnet03sbs\Гл.19\ado form.
  10. Щелкните на кнопке Загрузка данных. Форма заполнится данными и появится имя первого инструктора. В дополнение к этому под текстовым полем в только что созданной вами новой метке появится текст Запись 1 из 9. Ваша форма должна выглядеть примерно так.


  11. Чтобы посмотреть, как меняется статистика текущей записи при просмотре записей инструкторов из набора данных, щелкните несколько раз на кнопке Следующая запись.
  12. Щелкните на кнопках Предыдущая запись, Первая запись и Последняя запись, чтобы убедиться, что процедура Count работает также и для этих навигационных кнопок.
  13. Чтобы остановить приложение ADO Form, щелкните на кнопке Закрыть в строке заголовка программы.

Вы написали на Visual Basic и ADO.NET вашу первую оболочку для базы данных. В этом примере вы использовали базу данных Microsoft Access. Однако вы обнаружите, что базовые методики доступа к данным других типов, включая базы данных SQL Server и базы данных, хранящихся в удаленных хранилищах, очень похожи на эту. Причина этой одинаковости заключается в распределенной архитектуре ADO.NET, которая использует один и тот же механизм для установления соединения, настройки адаптеров данных и создания наборов данных.

Хотя для установки базового соединения и настройки в сессии ADO.NET требуется выполнить несколько шагов, преимущество этой предварительной работы состоит в том, что манипуляции с информацией из базы данных становятся универсальным процессом. Это верно даже тогда, когда используемые вами данные получаются из удаленного источника или являются результатом объединения различных таблиц базы данных или форматов данных. В "Представление данных с помощью элемента управления DataGrid" вы продолжите работать с информацией из базы данных, и научитесь как использовать элемент управления DataGrid для одновременной работы с несколькими записями базы данных.

Доступ к данным в среде веб-форм

Техники доступа к данным, обсуждаемые в этой лекции, были разработаны для использования в среде форм Windows - базовой среде Visual Studio, которую вы использовали для создания большинства программ из этой книги. Однако вы также можете использовать техники программирования ADO.NET в среде веб-форм, что позволяет совместно использовать источники данных из интернета и писать оболочки для баз данных, которые доступны через веб-браузер. Большинство различий между средами форм Windows и веб-форм описано в "Использование веб-форм для создания интерактивных веб-приложений" . За дополнительной информацией по написанию приложений баз данных в среде веб-форм обратитесь к справочной системе Visual Basic.

Краткая справка по лекции 19

Чтобы Сделайте следующее
Установить соединение с базой данных Щелкните на команде Server Explorer (Обозреватель серверов) в меню View (Вид), далее на кнопке Connect To Database (Подключиться к базе данных) и с помощью диалогового окна Data Link Properties (Свойства соединения с данными) укажите базу данных, к которой вы хотите открыть доступ.
Создать адаптер данных Щелкните на закладке Data (Данные) в окне Toolbox (Область элементов), перетащите в форму элемент управления OleDbDataAdapter или элемент управления SqlDataAdapter, а затем укажите в Data Adapter Configuration Wizard (Мастере конфигурации адаптера данных) информацию о базе данных, которую вы хотите использовать.
Создать набор данных Щелкните на команде Generate Dataset (Создать dataset) в меню Data (Данные), укажите имя набора данных, а затем убедитесь, что установлен флажок Add This Dataset To The Designer (Добавить этот dataset в конструктор).
Связать элемент управления формы Windows с активным набором данных Добавьте в форму подходящий элемент управления, откройте окно Properties (Свойства), а затем установите свойства категории DataBinding этого элемента управления равными требуемому полю (столбцу) из набора данных. (Одним из наиболее полезных свойств категории DataBinding является Text.)
Заполнить набор данных данными и вывести их в связанном элементе управления в форме Windows

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

OleDbDataAdapter1.Fill(DsInstructors1)
Добавить в форму Windows элементы управления для навигации

Создайте в форме объекты кнопок и добавьте в каждую из их процедур события Click операторы, которые обновляют свойство Position объекта BindingContext. Например, следующий оператор программы отображает следующую запись из таблицы с именем Instructors, находящейся в наборе данных DsInstructors1:

Me.BindingContext(DsInstructors1, _
	"Instructors").Position += 1
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Светлана Ведяева
Светлана Ведяева
Россия, Саратов