SqlCommand.EndExecuteNonQuery(IAsyncResult) SqlCommand.EndExecuteNonQuery(IAsyncResult) SqlCommand.EndExecuteNonQuery(IAsyncResult) SqlCommand.EndExecuteNonQuery(IAsyncResult) Method


Transact-SQL ステートメントの非同期実行を完了します。Finishes asynchronous execution of a Transact-SQL statement.

 int EndExecuteNonQuery(IAsyncResult ^ asyncResult);
public int EndExecuteNonQuery (IAsyncResult asyncResult);
member this.EndExecuteNonQuery : IAsyncResult -> int
Public Function EndExecuteNonQuery (asyncResult As IAsyncResult) As Integer


IAsyncResult IAsyncResult IAsyncResult IAsyncResult

BeginExecuteNonQuery() への呼び出しで返される IAsyncResultThe IAsyncResult returned by the call to BeginExecuteNonQuery().


影響を受けた行の数 (ExecuteNonQuery() と同じ動作)。The number of rows affected (the same behavior as ExecuteNonQuery()).


asyncResult パラメーターは null です (Microsoft Visual Basic では Nothing です)。asyncResult parameter is null (Nothing in Microsoft Visual Basic)

EndExecuteNonQuery(IAsyncResult) が 1 回のコマンドの実行に対して複数回呼び出されました。または、メソッドが実行メソッドに対して一致しませんでした (たとえば、BeginExecuteXmlReader() に対する呼び出しを実行するためにコードが EndExecuteNonQuery(IAsyncResult) を呼び出しました)。EndExecuteNonQuery(IAsyncResult) was called more than once for a single command execution, or the method was mismatched against its execution method (for example, the code called EndExecuteNonQuery(IAsyncResult) to complete execution of a call to BeginExecuteXmlReader().

CommandTimeout で指定された時間が経過しましたが、BeginExecuteNonQuery で指定された非同期操作が完了していません。The amount of time specified in CommandTimeout elapsed and the asynchronous operation specified with BeginExecuteNonQuery is not complete.

- または --or-

状況によっては、IAsyncResult が誤って IsCompleted に設定されている可能性があります。In some situations, IAsyncResult can be set to IsCompleted incorrectly. これが発生して EndExecuteNonQuery(IAsyncResult) が呼び出された場合、CommandTimeout で指定された時間が経過したにもかかわらず BeginExecuteNonQuery で指定した非同期操作が完了していないと、EndExecuteNonQuery が SqlException エラーを発生させることがあります。If this occurs and EndExecuteNonQuery(IAsyncResult) is called, EndExecuteNonQuery could raise a SqlException error if the amount of time specified in CommandTimeout elapsed and the asynchronous operation specified with BeginExecuteNonQuery is not complete. このような状況を修正するには、CommandTimeout の値を大きくするか、非同期操作で実行されている作業を軽減する必要があります。To correct this situation, you should either increase the value of CommandTimeout or reduce the work being done by the asynchronous operation.

EndExecuteNonQueryメソッドの使用方法を示す例についてBeginExecuteNonQueryは、「」を参照してください。For examples demonstrating the use of the EndExecuteNonQuery method, see BeginExecuteNonQuery.


を呼び出しBeginExecuteNonQueryTransact-SQLTransact-SQLステートメントを実行する場合は、操作EndExecuteNonQueryを完了するためにを呼び出す必要があります。When you call BeginExecuteNonQuery to execute a Transact-SQLTransact-SQL statement, you must call EndExecuteNonQuery in order to complete the operation. コマンドを実行するプロセスがまだ完了していない場合、このメソッドは操作が完了するまでブロックします。If the process of executing the command has not yet finished, this method blocks until the operation is complete. ユーザーは、 IAsyncResult BeginExecuteNonQueryメソッドによって返されたインスタンスを使用して、コマンドの操作が完了したことを確認できます。Users can verify that the command has completed its operation by using the IAsyncResult instance returned by the BeginExecuteNonQuery method. の呼び出しBeginExecuteNonQueryでコールバックプロシージャが指定されている場合は、このメソッドを呼び出す必要があります。If a callback procedure was specified in the call to BeginExecuteNonQuery, this method must be called.