次の方法で共有


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 ( Nothing Microsoft Visual Basic の場合)

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

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

- または -

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

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

注釈

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

適用対象