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

BeginExecuteNonQuery()の呼び出しによって返されるIAsyncResult

返品

影響を受ける行の数 ( ExecuteNonQuery()と同じ動作)。

例外

asyncResult パラメーターが null (Microsoft Visual Basic では Nothing) です

EndExecuteNonQuery(IAsyncResult)が 1 回のコマンド実行に対して複数回呼び出された場合、またはメソッドがその実行メソッド (たとえば、BeginExecuteXmlReader()の呼び出しの実行を完了するためにEndExecuteNonQuery(IAsyncResult)呼び出されたコード) と一致していません。

CommandTimeoutで指定された時間が経過し、BeginExecuteNonQueryで指定された非同期操作が完了していません。

-または-

状況によっては、 IAsyncResult が正しく IsCompleted に設定されていない可能性があります。 これが発生し、 EndExecuteNonQuery(IAsyncResult) が呼び出された場合、EndExecuteNonQuery は、 CommandTimeout で指定された時間が経過し、 BeginExecuteNonQuery で指定された非同期操作が完了していない場合に、SqlException エラーを発生させる可能性があります。 この状況を修正するには、CommandTimeout の値を大きくするか、非同期操作によって実行される作業を減らす必要があります。

EndExecuteNonQuery メソッドの使用例については、BeginExecuteNonQueryを参照してください。

注釈

BeginExecuteNonQuery を呼び出して Transact-SQL ステートメントを実行する場合は、操作を完了するために EndExecuteNonQuery を呼び出す必要があります。 コマンドの実行プロセスがまだ完了していない場合、このメソッドは操作が完了するまでブロックします。 ユーザーは、BeginExecuteNonQuery メソッドによって返されたIAsyncResult インスタンスを使用して、コマンドが操作を完了したことを確認できます。 BeginExecuteNonQueryの呼び出しでコールバック プロシージャが指定された場合は、このメソッドを呼び出す必要があります。

適用対象

こちらもご覧ください