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),在過了 CommandTimeout 中指定的時間且以 BeginExecuteNonQuery 指定的非同步作業未完成時,EndExecuteNonQuery 可能會引發 SqlException 錯誤。 若要更正這種情況,您應該增加 CommandTimeout 的值,或減少非同步作業所要完成的工作。
範例
如需示範如何使用 方法的 EndExecuteNonQuery 範例,請參閱 BeginExecuteNonQuery。
備註
當您呼叫 BeginExecuteNonQuery 以執行 Transact-SQL 語句時,您必須呼叫 EndExecuteNonQuery 才能完成作業。 如果執行命令的程式尚未完成,這個方法會封鎖直到作業完成為止。 使用者可以使用 方法所傳回的 BeginExecuteNonQuery 實例,確認命令已完成其作業IAsyncResult。 如果在呼叫 BeginExecuteNonQuery中指定回呼程式,則必須呼叫這個方法。