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 參數為空(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 才能完成該操作。 如果執行指令的過程尚未完成,此方法會阻塞直到操作完成。 使用者可以透過方法回傳BeginExecuteNonQuery的IAsyncResult實例來驗證指令是否已完成操作。 若呼叫時指定 BeginExecuteNonQuery了回調程序,則必須呼叫此方法。