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(在 Microsoft Visual Basic 中为 Nothing

不止一次为单个命令执行调用了 EndExecuteNonQuery(IAsyncResult),或该方法不匹配其执行方法(例如,代码调用了 EndExecuteNonQuery(IAsyncResult) 以完成对 BeginExecuteXmlReader() 调用的执行。

CommandTimeout 中指定的时间已过,并且使用 BeginExecuteNonQuery 指定的异步操作不完整。

- 或 -

在某些情况下,IAsyncResult 可能不正确地设置为 IsCompleted。 如果发生这种情况并且调用 EndExecuteNonQuery(IAsyncResult),则 EndExecuteNonQuery 可能引发 SqlException 错误(如果 CommandTimeout 中指定的时间已过,并且使用 BeginExecuteNonQuery 指定的异步操作不完整)。 若要更正这种情况,应增加 CommandTimeout 的值或减少正由异步操作完成的工作。

示例

有关演示如何使用 EndExecuteNonQuery 方法的示例,请参阅 BeginExecuteNonQuery

注解

调用 BeginExecuteNonQuery 以执行 Transact-SQL 语句时,必须调用 EndExecuteNonQuery 才能完成操作。 如果命令的执行过程尚未完成,则此方法将阻止,直到操作完成。 用户可以使用 方法返回BeginExecuteNonQuery的 实例来验证命令是否已完成其操作IAsyncResult。 如果在调用 BeginExecuteNonQuery中指定了回调过程,则必须调用此方法。

适用于

另请参阅