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),在過了 CommandTimeout 中指定的時間且以 BeginExecuteNonQuery 指定的非同步作業未完成時,EndExecuteNonQuery 可能會引發 SqlException 錯誤。 若要更正這種情況,您應該增加 CommandTimeout 的值,或減少非同步作業所要完成的工作。

範例

如需示範如何使用 方法的 EndExecuteNonQuery 範例,請參閱 BeginExecuteNonQuery

備註

當您呼叫 BeginExecuteNonQuery 以執行 Transact-SQL 語句時,您必須呼叫 EndExecuteNonQuery 才能完成作業。 如果執行命令的程式尚未完成,這個方法會封鎖直到作業完成為止。 使用者可以使用 方法所傳回的 BeginExecuteNonQuery 實例,確認命令已完成其作業IAsyncResult。 如果在呼叫 BeginExecuteNonQuery中指定回呼程式,則必須呼叫這個方法。

適用於

另請參閱