Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_5_Tekhnologia_programmirovania.docx
Скачиваний:
48
Добавлен:
20.03.2016
Размер:
190.71 Кб
Скачать

2.2.2. Построение команды sql

Объектно-ориентированным представлением запроса на языке SQL в ADO.NET является класс OleDbCommand. Сам текст команды определяется через свойство CommandText. Множество типов ADO.NET принимают объект OleDbCommand в качестве параметра для того, чтобы передать запрос к источнику данных. Также в классе OleDbCommand предусмотрено множество других компонентов, которые позволяют определить характеристики запроса (см. таблицу).

Компонент

Описание

Cancel()

Прекращает выполнение команды

CommandText

Позволяет получить или задать текст запроса на языке SQL, который будет передан источнику данных

CommandTimeout

Позволяет получить время тайм-аута при выполнении команды. По умолчанию это время равно 30 секундам

CommandType

Позволяет получить или установить значение, определяющее, как именно будет интерпретирован текст запроса

Connection

Позволяет получить ссылку на объект OleDbConnection, для которого используется данный объект OleDbCommand

ExecuteReader()

Возвращает объект OleDbDataReader

Parameters

Возвращает коллекцию параметров OleDbParameterCollection

Prepare()

Готовит команду к выполнению (например, она будет откомпилирована) на источнике данных

2.2.3. Работа с OleDbDataReader

После того, как соединение с источником данных открыто и создан объект – команда SQL, следующая задача – передать эту команду (запрос) источнику данных. Это можно сделать несколькими способами, но использование OleDbDataReader – это наиболее простой, наиболее быстрый способ получения информации от источника данных … и наименее гибкий. Этот класс представляет однонаправленный (только вперед), доступный только для чтения поток данных, который за один раз возвращает одну строку в ответ на запрос SQL.

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

2.2.4. Класс OleDbDataAdapter

Класс OleDbDataAdapter используется в тех случаях, когда необходимо заполнить полученными с сервера данными объект DataSet и выполнить с ними определенные операции.

Основное назначение этого класса – извлечь информацию из источника данных и заполнить ею объект DataTable в DataSet при помощи метода OleDbDataAdapter.Fill(). Метод Fill() многократно перегружен, ниже приведены два наиболее часто используемых варианта (возвращаемое значение int позволяет получить информацию о количестве записей, полученных из источника данных):

//Заполняет объект DataSet данными, полученными из таблицы

//на источнике данных с указанным именем

public int Fill(DataSet ds, string tableName);

//Также заполняет данными, но только теми, которые находятся

//в указанных границах

public int Fill(DataSet ds, string tableName, int startRecord, int maxRecord);

Конечно, перед тем, как вызывать этот метод, нужно иметь уже созданный объект OleDbDataAdapter. Конструктор OleDbDataAdapter также многократно перегружен, но обычно необходимо указать информацию о параметрах подключения к базе данных и команду SELECT на языке SQL, которая будет использована для заполнения DataTable.

OleDbDataAdapter позволяет не только заполнять объект DataTable внутри DataSet данными, полученными из источника, но и помещать измененные данные обратно в источник данных при помощи стандартных команд SQL. Ниже в таблице представлены компоненты класса OleDbDataAdapter, которые позволяют это сделать, а также некоторые другие важнейшие элементы этого класса.

Компонент

Описание

DeleteCommand

InsertCommand

SelectCommand

UpdateCommand

Используются для определения того, какая именно команда SQL будет передана на источник данных при вызове метода Update(). Каждое из этих свойств определяется при помощи объектов OleDbCommand

Fill()

Заполняет указанную таблицу в DataSet определенным пользователем количеством записей

GetFillParameters()

Возвращает все параметры, использованные при выполнении SELECT к источнику данных

Update()

Вызывает соответствующие команды INSERT, UPDATE, DELETE к источнику данных для каждой вставленной, измененной или удаленной строки в таблице объекта DataSet

При использовании свойств DeleteCommand, InsertCommand, SelectCommand, UpdateCommand объект OleDbDataAdapter автоматически переводит внесенные изменения в таблицу данных в DataSet в соответствующие команды на языке SQL, сохраняя, таким образом, внесенные изменения в источнике данных. Эти свойства позволяют определить соответствующие команды SQL в деталях.