다음을 통해 공유


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( Nothing Microsoft Visual Basic의 경우)

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

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

또는

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

예제

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

설명

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

적용 대상