Freigeben ü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

Der IAsyncResult , der vom Aufruf von BeginExecuteNonQuery() zurückgegeben wird.

Gibt zurück

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

Ausnahmen

asyncResult -Parameter ist NULL ( Nothing in Microsoft Visual Basic)

EndExecuteNonQuery(IAsyncResult) wurde für eine einzelne Befehlsausführung mehrmals aufgerufen, oder die Methode war mit ihrer Ausführungsmethode nicht übereinstimmend (z. B. der Code, der aufgerufen wurde EndExecuteNonQuery(IAsyncResult) , um die Ausführung eines Aufrufs von abzuschließen BeginExecuteXmlReader() .

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

- oder -

In einigen Situationen IAsyncResult kann auf festgelegt werdenIsCompleted Falsch. 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 Instanz verwenden. Wenn im Aufruf von BeginExecuteNonQuery()eine Rückrufprozedur angegeben wurde, muss diese Methode aufgerufen werden.

Gilt für: