Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СРС / Подключенный режим / 3-Приложение, извлек типизированные данные

.docx
Скачиваний:
5
Добавлен:
28.06.2021
Размер:
106.46 Кб
Скачать

3

  1. Приложение Book.v3, извлекающее типизированные данные, с которыми можно работать

Решаемая задача – визуализация SQL-запросов к базе данных, возвращающих наборы данных. Приложение работает в подключенном режиме. Реализуются: подключение к базе данных, создание объектов Connection, Command, типизированный DataReader и DataTable.

Достоинства приложения:

  • простота реализации;

  • эффективная работа за счет использования простого объекта DataReader, обеспечивающего быстрое последовательное однонаправленное чтение данных;

  • извлечение строго типизированных данных, допускающих чтение и правильное использование их в программе.

Недостатки приложения:

  • данные можно просматривать только в одном направлении;

  • используется постоянное соединение с базой данных (монопольный доступ объекта DataReader к активному соединению).

Чтобы с данными в приложении можно было работать, необходимо получать из базы строго типизированные данные, а не типа Object. Объект DataReader предоставляет методы для извлечения из результирующего набора данных заданного типа. Например, метод GetBoolean() извлекает значения типа Boolean.

Если известен тип данных столбца, можно воспользоваться методами объекта DataReader для извлечения из этого столбца строго типизированных данных:

string str = rdr.GetBoolean(1) ;

При использовании этого способа указывается порядковый номер поля, а не его имя. Если известно имя поля, можно определить его порядковый номер, вызвав метод GetOrdinal:

int ord = rdr.GetOrdinal("LastName");

string lastName = rdr.GetString(ord);

Если тип столбца неизвестен, можно воспользоваться методом GetFieldType(), который возвращает тип System.Tуре, являющийся типом данных объекта. В качестве параметра этому методу передается порядковый номер столбца.

Для демонстрации примера с извлечением строго типизированных данных из SqlDataReader, создадим новый проект Windows Forms Application с именем Book.v3, поместив его в решение Connected.

Проект содержит одну форму Form1. Установим новый заголовок окна формы – Book v3 (свойство Text). Добавим на форму элемент StatusStrip для отображения строки состояния и элемент DataGridView для отображения табличных данных. Последний назовем dgvData (свойство Name) и зададим в его свойстве Dock значение Fill. В StatusStrip добавим метку StatusLabel с именем lbRecordsCount (свойство Name) для отображения количества записей.

Для формы создадим обработчик события Load, в тело которого будем писать код для чтения информации из базы данных.

Записи из объекта SqlDataReader сохраняются в DataTable, строго типизированные столбцы которой создаются динамически, во время выполнения программы, а затем DataTable заполняется записями из базы данных. Сама выборка данных аналогична полученной в предыдущей программе.

Результат вывода параметризованного запроса для таблицы Orders показан на рисунке.