SqlCommand.EndExecuteNonQuery(IAsyncResult) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kończy asynchroniczne wykonywanie instrukcji 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
Parametry
- asyncResult
- IAsyncResult
Zwrócony IAsyncResult przez wywołanie metody .BeginExecuteNonQuery()
Zwraca
Liczba wierszy, których dotyczy problem (takie samo zachowanie jak ExecuteNonQuery()).
Wyjątki
parametr asyncResult ma wartość null (Nothing w Microsoft Visual Basic)
EndExecuteNonQuery(IAsyncResult)był wywoływany więcej niż raz dla pojedynczego wykonywania polecenia lub metoda była niezgodna z metodą wykonywania (na przykład kod wywoływany EndExecuteNonQuery(IAsyncResult) w celu ukończenia wykonywania wywołania metody .BeginExecuteXmlReader()
Czas określony w CommandTimeout czasie, który upłynął, a operacja asynchroniczna określona za pomocą BeginExecuteNonQuery polecenia nie została ukończona.
— lub —
W niektórych sytuacjach IAsyncResult można ustawić wartość IsCompleted niepoprawnie. Jeśli tak się stanie i EndExecuteNonQuery(IAsyncResult) zostanie wywołana, endExecuteNonQuery może wywołać błąd SqlException, jeśli czas określony w CommandTimeout upłynięciu i asynchroniczne działanie określone za pomocą BeginExecuteNonQuery polecenia nie zostanie ukończone. Aby rozwiązać tę sytuację, należy zwiększyć wartość polecenia CommandTimeout lub zmniejszyć pracę wykonywaną przez operację asynchroniczną.
Przykłady
Przykłady pokazujące użycie EndExecuteNonQuery metody można znaleźć w temacie BeginExecuteNonQuery.
Uwagi
Po wywołaniu polecenia BeginExecuteNonQuery w celu wykonania instrukcji Transact-SQL należy wywołać EndExecuteNonQuery, aby ukończyć operację. Jeśli proces wykonywania polecenia nie został jeszcze zakończony, ta metoda blokuje działanie do momentu ukończenia operacji. Użytkownicy mogą sprawdzić, czy polecenie zakończyło swoją operację, używając IAsyncResult wystąpienia zwróconego przez metodę BeginExecuteNonQuery . Jeśli w wywołaniu metody BeginExecuteNonQueryokreślono procedurę wywołania zwrotnego , należy wywołać tę metodę.