Поделиться через


SqlCommand.CommandTimeout Свойство

Определение

Возвращает или задает время ожидания (в секундах) перед прекращением попытки выполнить команду и выводом ошибки.

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);
         }
      }
   }
}

Применяется к

См. также раздел