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