次の方法で共有


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

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

注釈

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

適用対象

こちらもご覧ください