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указана процедура обратного вызова , необходимо вызвать этот метод.