Класс DbCommand
Экземпляр класса DbCommand представляет собой SQL-запрос или вызов хранимой процедуры, снабженный методами для выполнения этого запроса. Объекты DbCommand могут выполнять группу запросов, разделенных знаком «;» в пределах одной команды. В этом случае коллекция параметров должна объединять все параметры из всех запросов.
Примечание
В текущей версии ADO.NET провайдера не поддерживается выполнение группы запросов, среди которых есть запрос создания хранимой процедуры, триггера или EXECUTE BLOCK. В этом случае команда должна содержать только один запрос, который выполняет любое из вышеуказанных действий.
Класс DbCommand дает возможность выполнять запрос разными способами:
-
если запрос не возвращает записи, необходимо вызвать метод
ExecuteNonQuery; -
если запрос возвращает записи, необходимо вызвать метод
ExecuteReader, который возвращает объектDataReader, позволяющий просматривать записи; -
если необходимо получить только первое поле первой записи, необходимо вызвать метод
ExecuteScalar.
Класс DbCommand дает возможность выполнять запросы в асинхронном режиме
(см. приложение 2).
Для освобождения объекта DbCommand надо использовать оператор using или блок try...finally (см. приложение 1).
Конструкторы класса приведены в таблице 10.
| Конструктор | Описание |
|---|---|
| LinterDbCommand() | Создает новый объект DbCommand с параметрами по умолчанию. |
| LinterDbCommand(String) | Создает новый объект DbCommand с указанным SQL-запросом. |
| LinterDbCommand(String, LinterDbConnection) | Создает новый объект DbCommand с указанным SQL-запросом по заданному соединению с источником данных. |
| LinterDbCommand(String,LinterDbConnection,LinterDbTransaction) | Создает новый объект DbCommand с указанным SQL-запросом по заданному соединению с источником данных и режимом обработки транзакций. |
Свойства класса приведены в таблице 11.
| Свойство | Описание |
|---|---|
| CommandText | Предоставляет/устанавливает текущее значение текста SQL-запроса. |
| CommandTimeout | Предоставляет/устанавливает максимально допустимый интервал ожидания завершения выполнения SQL-запроса сервером источника данных. |
| CommandType | Индикатор типа SQL-запроса (доступ к таблице или к хранимой процедуре). |
| Connection | Предоставляет/устанавливает объект DbConnection (соединение), который должен использоваться (используется) для соединения с источником данных. |
| DesignTimeVisible | Индикатор видимости объекта DbCommand в настраиваемом элементе управления интерфейса разработчика программного обеспечения (Windows Forms Designer). |
| Parameters | Предоставляет описание параметров параметризованного SQL-запроса или хранимой процедуры. |
| Transaction | Предоставляет/устанавливает значение объекта DbTransaction, используемого в соединении с источником данных. |
| UpdatedRowSource | Индикатор механизма изменения данных в объекте DataRow после выполнения метода Update DbDataAdapter. |
Методы класса приведены в таблице 12.
| Метод | Описание |
|---|---|
Cancel
| Отмена выполнения команды по текущему соединению. |
CreateParameter
| Создает новый экземпляр объекта DbParameter. |
ExecuteNonQuery
| Выполняет SQL-запрос, не возвращающий данные. |
ExecuteReader
| Выполняет свойство CommandText по соединению Connection и помещает результаты (обычно выборку данных) в объект DbDataReader. |
ExecuteReader(CommandBehavior)
| Выполняет свойство CommandText по соединению Connection и помещает результаты (обычно выборку данных) согласно заданным в аргументе CommandBehavior условиям в объект DbDataReader. |
ExecuteScalar
| Выполняет SQL-запрос и возвращает первый столбец первой строки результирующей выборки данных. |
Prepare
| Подготавливает параметризованный SQL-запрос или хранимую процедур с параметрами для последующего выполнения. |