SqlCommand.EndExecuteNonQuery(IAsyncResult) 方法
本文内容
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
完成 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中指定了回调过程,则必须调用此方法。
适用于
产品 | 版本 |
---|---|
.NET | 6 (package-provided), 7 (package-provided), 8 (package-provided), 9 (package-provided), 10 (package-provided) |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0 (package-provided) |