Поделиться через


SqlCommand.EndExecuteNonQuery(IAsyncResult) Метод

Определение

Завершает асинхронное выполнение инструкции Transact-SQL.

public:
 int EndExecuteNonQuery(IAsyncResult ^ asyncResult);
public int EndExecuteNonQuery (IAsyncResult asyncResult);
member this.EndExecuteNonQuery : IAsyncResult -> int
Public Function EndExecuteNonQuery (asyncResult As IAsyncResult) As Integer

Параметры

asyncResult
IAsyncResult

Объект IAsyncResult, возвращенный из вызова BeginExecuteNonQuery().

Возвращаемое значение

Количество задействованных строк (аналогично ExecuteNonQuery()).

Исключения

Параметр asyncResult имеет значение NULL (Nothing в Microsoft Visual Basic).

EndExecuteNonQuery(IAsyncResult) вызывался более одного раза для одиночного выполнения команды, или неправильно подобран метод для его метода выполнения (например, код вызвал EndExecuteNonQuery(IAsyncResult) для завершения выполнения вызова в BeginExecuteXmlReader().

Время, указанное в CommandTimeout, истекло, а асинхронная операция, указанная с BeginExecuteNonQuery, не завершена.

-или-

В некоторых ситуациях для IAsyncResult может быть ошибочно задано значение IsCompleted. Если это произошло и вызывается EndExecuteNonQuery(IAsyncResult), метод EndExecuteNonQuery может вызвать ошибку SqlException, если время, указанное в CommandTimeout, истекло, а асинхронная операция, указанная с BeginExecuteNonQuery, не завершена. Чтобы исправить эту ситуацию, следует увеличить значение CommandTimeout или уменьшить объем обработки, выполняемой асинхронной операцией.

Примеры

Примеры, демонстрирующие использование метода , см. в EndExecuteNonQuery разделе BeginExecuteNonQuery.

Комментарии

При вызове BeginExecuteNonQuery для выполнения инструкции Transact-SQL необходимо вызвать EndExecuteNonQuery , чтобы завершить операцию. Если процесс выполнения команды еще не завершен, этот метод блокируется до завершения операции. Пользователи могут убедиться, что команда завершила свою операцию, используя экземпляр, IAsyncResult возвращенный методом BeginExecuteNonQuery . Если в вызове BeginExecuteNonQueryуказана процедура обратного вызова , необходимо вызвать этот метод.

Применяется к

См. также раздел