Класс DbCommand

Экземпляр класса DbCommand представляет собой SQL-запрос или вызов хранимой процедуры, снабженный методами для выполнения этого запроса. Объекты DbCommand могут выполнять группу запросов, разделенных знаком «;» в пределах одной команды. В этом случае коллекция параметров должна объединять все параметры из всех запросов.

Примечание

В текущей версии ADO.NET провайдера не поддерживается выполнение группы запросов, среди которых есть запрос создания хранимой процедуры, триггера или EXECUTE BLOCK. В этом случае команда должна содержать только один запрос, который выполняет любое из вышеуказанных действий.

Класс DbCommand дает возможность выполнять запрос разными способами:

  • если запрос не возвращает записи, необходимо вызвать метод ExecuteNonQuery;

  • если запрос возвращает записи, необходимо вызвать метод ExecuteReader, который возвращает объект DataReader, позволяющий просматривать записи;

  • если необходимо получить только первое поле первой записи, необходимо вызвать метод ExecuteScalar.

Класс DbCommand дает возможность выполнять запросы в асинхронном режиме (см. приложение 2).

Для освобождения объекта DbCommand надо использовать оператор using или блок try...finally (см. приложение 1).

Конструкторы класса приведены в таблице 12.

Таблица 12. Конструкторы класса DbCommand
КонструкторОписание
LinterDbCommand()Создает новый объект DbCommand с параметрами по умолчанию.
LinterDbCommand(String)Создает новый объект DbCommand с указанным SQL-запросом.
LinterDbCommand(String, LinterDbConnection)Создает новый объект DbCommand с указанным SQL-запросом по заданному соединению с источником данных.
LinterDbCommand(String,LinterDbConnection,LinterDbTransaction)Создает новый объект DbCommand с указанным SQL-запросом по заданному соединению с источником данных и режимом обработки транзакций.

Свойства класса приведены в таблице 13.

Таблица 13. Свойства класса DbCommand
Свойство Описание
CommandText Предоставляет/устанавливает текущее значение текста SQL-запроса.
CommandTimeout Предоставляет/устанавливает максимально допустимый интервал ожидания завершения выполнения SQL-запроса сервером источника данных.
CommandType Индикатор типа SQL-запроса (доступ к таблице или к хранимой процедуре).
Connection Предоставляет/устанавливает объект DbConnection (соединение), который должен использоваться (используется) для соединения с источником данных.
DesignTimeVisible Индикатор видимости объекта DbCommand в настраиваемом элементе управления интерфейса разработчика программного обеспечения (Windows Forms Designer).
Parameters Предоставляет описание параметров параметризованного SQL-запроса или хранимой процедуры.
Transaction Предоставляет/устанавливает значение объекта DbTransaction, используемого в соединении с источником данных.
UpdatedRowSource Индикатор механизма изменения данных в объекте DataRow после выполнения метода Update DbDataAdapter.

Методы класса приведены в таблице 14.

Таблица 14. Методы класса DbCommand
Метод Описание
Cancel Отмена выполнения команды по текущему соединению.
CreateParameter Создает новый экземпляр объекта DbParameter.
ExecuteNonQuery Выполняет SQL-запрос, не возвращающий данные.
ExecuteReader Выполняет свойство CommandText по соединению Connection и помещает результаты (обычно выборку данных) в объект DbDataReader.
ExecuteReader(CommandBehavior) Выполняет свойство CommandText по соединению Connection и помещает результаты (обычно выборку данных) согласно заданным в аргументе CommandBehavior условиям в объект DbDataReader.
ExecuteScalar Выполняет SQL-запрос и возвращает первый столбец первой строки результирующей выборки данных.
Prepare Подготавливает параметризованный SQL-запрос или хранимую процедур с параметрами для последующего выполнения.