다음을 통해 공유


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

IAsyncResult 호출에서 반환된 BeginExecuteNonQuery()입니다.

반환

영향을 받는 행 수입니다(ExecuteNonQuery()와 동일한 동작).

예외

asyncResult 매개 변수는 null(Microsoft Visual Basic의 Nothing)입니다.

EndExecuteNonQuery(IAsyncResult)가 단일 명령 실행에 대해 두 번 이상 호출되었거나, 실행 메서드에 대해 메서드가 일치하지 않습니다(예: 코드가 BeginExecuteXmlReader()에 대한 호출 실행을 완료하기 위해 EndExecuteNonQuery(IAsyncResult)를 호출함).

CommandTimeout에 지정된 시간이 경과되었으며 BeginExecuteNonQuery로 지정된 비동기 작업이 완료되지 않았습니다.

또는

상황에 따라서는 IAsyncResultIsCompleted로 잘못 설정할 수 있습니다. 이 상황이 발생하고 EndExecuteNonQuery(IAsyncResult)가 호출되면 CommandTimeout에 지정된 시간이 경과되었고 BeginExecuteNonQuery로 지정된 비동기 작업이 완료되지 않은 경우 EndExecuteNonQuery로 인해 SqlException 오류가 발생할 수 있습니다. 이 상황을 해결하려면 CommandTimeout의 값을 높이거나 비동기 작업에 의해 수행되는 작업을 줄여야 합니다.

예제

메서드의 사용을 EndExecuteNonQuery 보여주는 예제는 를 참조하세요 BeginExecuteNonQuery.

설명

를 호출 BeginExecuteNonQuery 하여 Transact-SQL 문을 실행할 때 작업을 완료하려면 를 호출 EndExecuteNonQuery 해야 합니다. 명령을 실행하는 프로세스가 아직 완료되지 않은 경우 이 메서드는 작업이 완료될 때까지 차단합니다. 사용자는 메서드에서 반환 BeginExecuteNonQuery 된 instance 사용하여 명령이 IAsyncResult 작업을 완료했는지 확인할 수 있습니다. 에 대한 호출에서 콜백 프로시저를 지정한 경우 이 메서드를 BeginExecuteNonQuery호출해야 합니다.

적용 대상

추가 정보