영어로 읽기

다음을 통해 공유


SqlCommand.CommandTimeout 속성

정의

명령 실행을 종료하고 오류를 생성하기 전 대기 시간(초 단위)을 가져오거나 설정합니다.

C#
public override int CommandTimeout { get; set; }
C#
[System.Data.DataSysDescription("DbCommand_CommandTimeout")]
public int CommandTimeout { get; set; }

속성 값

명령이 실행될 때까지 대기하는 시간(초)입니다. 기본값은 30초입니다.

구현

특성

설명

값이 0이면 제한이 없음을 나타냅니다(명령을 실행하려는 시도는 무기한 대기).

참고

속성은 CommandTimeout 와 같은 BeginExecuteReader이전 APM(비동기 프로그래밍 모델) 비동기 메서드 호출에서 무시됩니다. 와 같은 ExecuteReaderAsync최신 TAP(작업 비동기 프로그래밍) 메서드가 적용됩니다.

CommandTimeout는 명령이 컨텍스트 연결(SqlConnection연결 문자열 "context connection=true"로 열린)에 대해 실행될 때 영향을 주지 않습니다.

참고

이 속성은 명령 실행 또는 결과 처리 중 모든 네트워크 읽기에 대한 누적 제한 시간(메서드 호출 중에 읽은 모든 네트워크 패킷의 경우)입니다. 첫 번째 행이 반환된 후에도 시간 제한은 계속 발생할 수 있으며 사용자 처리 시간은 포함하지 않으며 네트워크 읽기 시간만 포함됩니다.

예를 들어 시간 제한 시간이 30초인 경우 두 개의 네트워크 패킷이 필요한 경우 Read 두 네트워크 패킷을 모두 읽는 데 30초가 걸립니다. 다시 호출 Read 하면 필요한 데이터를 읽는 데 30초가 더 걸립니다.

C#
using System;
using System.Data.SqlClient;
///
public class A {
   ///
   public static void Main() {
      string connectionString = "";
      // Wait for 5 second delay in the command
      string queryString = "waitfor delay '00:00:05'";
      using (SqlConnection connection = new SqlConnection(connectionString)) {
         connection.Open();
         SqlCommand command = new SqlCommand(queryString, connection);
         // Setting command timeout to 1 second
         command.CommandTimeout = 1;
         try {
            command.ExecuteNonQuery();
         }
         catch (SqlException e) {
            Console.WriteLine("Got expected SqlException due to command timeout ");
            Console.WriteLine(e);
         }
      }
   }
}

적용 대상

제품 버전
.NET Core 1.0, Core 1.1, 6 (package-provided), 7 (package-provided), 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)

추가 정보