SqlCommand.CommandTimeout 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
명령 실행 시도를 종료하고 오류를 생성하기 전에 대기 시간(초)을 가져오거나 설정합니다.
public:
virtual property int CommandTimeout { int get(); void set(int value); };
public:
property int CommandTimeout { int get(); void set(int value); };
public override int CommandTimeout { get; set; }
[System.Data.DataSysDescription("DbCommand_CommandTimeout")]
public int CommandTimeout { get; set; }
member this.CommandTimeout : int with get, set
[<System.Data.DataSysDescription("DbCommand_CommandTimeout")>]
member this.CommandTimeout : int with get, set
Public Overrides Property CommandTimeout As Integer
Public Property CommandTimeout As Integer
속성 값
명령이 실행되기를 기다리는 시간(초)입니다. 기본값은 30초입니다.
구현
- 특성
설명
값이 0이면 제한이 없음을 나타냅니다(명령을 실행하려는 시도는 무기한 대기합니다).
메모
속성은 CommandTimeout 같은 이전 APM(비동기 프로그래밍 모델) 비동기 메서드 호출 BeginExecuteReader에서 무시됩니다. 최신 TAP(작업 비동기 프로그래밍) 메서드(예: ExecuteReaderAsync.)가 적용됩니다.
CommandTimeout 는 컨텍스트 연결에 대해 명령이 실행될 때 영향을 주지 않습니다( SqlConnection 연결 문자열에서 "context connection=true"로 열린 경우).
메모
이 속성은 명령 실행 또는 결과 처리 중 모든 네트워크 읽기에 대한 누적 제한 시간(메서드 호출 중에 읽는 모든 네트워크 패킷의 경우)입니다. 첫 번째 행이 반환된 후에도 제한 시간이 계속 발생할 수 있으며 사용자 처리 시간은 포함하지 않으며 네트워크 읽기 시간만 포함됩니다.
예를 들어 30초 제한 시간이 초과되면 두 개의 네트워크 패킷이 필요한 경우 Read 두 네트워크 패킷을 모두 읽는 데 30초가 소요됩니다. 다시 호출 Read 하면 필요한 데이터를 읽는 데 30초가 더 걸립니다.
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);
}
}
}
}