Объектно-ориентированным представлением запроса на языке SQL в ADO.NET является класс OleDbCommand. Сам текст команды определяется через свойство CommandText. Множество типов ADO.NET принимают объект OleDbCommand в качестве параметра для того, чтобы передать запрос к источнику данных. Также в классе OleDbCommand предусмотрено множество других компонентов, которые позволяют определить характеристики запроса (см. таблицу 1.3).
Таблица 1.3 – Компоненты класса OleDbCommand
Компонент | Описание |
Cancel() | Прекращает выполнение команды |
CommandText | Позволяет получить или задать текст запроса на языке SQL, который будет передан источнику данных |
CommandTimeout | Позволяет получить время тайм-аута при выполнении команды. По умолчанию это время равно 30 секундам |
CommandType | Позволяет получить или установить значение, определяющее, как именно будет интерпретирован текст запроса |
Connection | Позволяет получить ссылку на объект OleDbConnection, для которого используется данный объект OleDbCommand |
ExecuteReader() | Возвращает объект OleDbDataReader |
Parameters | Возвращает коллекцию параметров OleDbParameterCollection |
Prepare() | Готовит команду к выполнению (например, она будет откомпилирована) на источнике данных |
Работа с OleDbDataReader
|
|
После того, как соединение с источником данных открыто и создан объект – команда SQL, следующая задача – передать эту команду (запрос) источнику данных. Это можно сделать несколькими способами, но использование OleDbDataReader – это наиболее простой, наиболее быстрый способ получения информации от источника данных … и наименее гибкий. Этот класс представляет однонаправленный (только вперед), доступный только для чтения поток данных, который за один раз возвращает одну строку в ответ на запрос SQL.
Класс OleDbDataReader очень полезен, когда необходимо последовательно обработать большое количество данных и в то же время не нужно выполнять с этими данными какие-либо операции в памяти. В отличие от DataSet, при использовании OleDbDataReader соединение с базой данных не закрывается автоматически, а сохраняется активным до тех пор, пока не будет закрыто явным образом.