Teilen über


SqlCommand.EndExecuteNonQuery(IAsyncResult) Methode

Definition

Beendet die asynchrone Ausführung einer Transact-SQL-Anweisung.

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

Parameter

asyncResult
IAsyncResult

Das IAsyncResult-Ergebnis, das durch den Aufruf von BeginExecuteNonQuery() zurückgegeben wird.

Gibt zurück

Die Anzahl der betroffenen Zeilen (das gleiche Verhalten wie ExecuteNonQuery()).

Ausnahmen

asyncResult-Parameter ist 0 (null) (Nothing in Microsoft Visual Basic)

EndExecuteNonQuery(IAsyncResult) wurde für eine einzelne Befehlsausführung mehr als einmal aufgerufen, oder die Methode und ihre Ausführungsmethode stimmen nicht überein (z. B. hat der Code EndExecuteNonQuery(IAsyncResult) aufgerufen, um die Ausführung eines Aufrufs von BeginExecuteXmlReader() abzuschließen.

Die in CommandTimeout angegebene Zeitspanne ist abgelaufen und der asynchrone Vorgang mit BeginExecuteNonQuery wurde nicht abgeschlossen.

- oder -

In einigen Situationen kann IAsyncResult fälschlicherweise auf IsCompleted festgelegt werden. Wenn dies der Fall ist und EndExecuteNonQuery(IAsyncResult) aufgerufen wird, könnte „EndExecuteNonQuery“ einen SqlException-Fehler auslösen, wenn die in CommandTimeout angegebene Zeitspanne abgelaufen ist und der asynchrone Vorgang mit BeginExecuteNonQuery nicht abgeschlossen wurde. Um dieses Problem zu beheben, sollten Sie entweder den Wert von „CommandTimeout“ erhöhen oder die vom asynchronen Vorgang zu erledigende Arbeit reduzieren.

Beispiele

Beispiele für die Verwendung der EndExecuteNonQuery -Methode finden Sie unter BeginExecuteNonQuery.

Hinweise

Wenn Sie zum Ausführen einer Transact-SQL-Anweisung aufrufen BeginExecuteNonQuery , müssen Sie aufrufen EndExecuteNonQuery , um den Vorgang abzuschließen. Wenn der Prozess der Ausführung des Befehls noch nicht abgeschlossen ist, wird diese Methode blockiert, bis der Vorgang abgeschlossen ist. Benutzer können überprüfen, ob der Befehl seinen Vorgang abgeschlossen hat, indem sie die von der IAsyncResultBeginExecuteNonQuery -Methode zurückgegebene instance verwenden. Wenn im Aufruf von BeginExecuteNonQueryeine Rückrufprozedur angegeben wurde, muss diese Methode aufgerufen werden.

Gilt für:

Weitere Informationen