SqlCommand.CommandTimeout Propriedade

Definição

Obtém ou define o tempo de espera (em segundos) antes de encerrar a tentativa de executar um comando e antes de gerar um erro.

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

Valor da propriedade

O tempo de espera, em segundos, para a execução do comando. O padrão é 30 segundos.

Implementações

Atributos

Comentários

Um valor 0 indica que nenhum limite (uma tentativa de executar um comando aguardará indefinidamente).

Observação

A CommandTimeout propriedade será ignorada por chamadas de método assíncronas do APM (Modelo de Programação Assíncrona), como BeginExecuteReader. Ele será respeitado por métodos TAP (Programação Assíncrona de Tarefa) mais recentes, como ExecuteReaderAsync.

CommandTimeoutnão tem efeito quando o comando é executado em uma conexão de contexto (um SqlConnection aberto com "context connection=true" no cadeia de conexão).

Observação

Essa propriedade é o tempo limite cumulativo (para todos os pacotes de rede que são lidos durante a invocação de um método) para todas as leituras de rede durante a execução ou processamento de comando dos resultados. Um tempo limite ainda pode ocorrer depois que a primeira linha é retornada e não inclui o tempo de processamento do usuário, apenas o tempo de leitura da rede.

Por exemplo, com um tempo limite de 30 segundos, se Read exigir dois pacotes de rede, ele terá 30 segundos para ler os dois pacotes de rede. Se você chamar Read novamente, ele terá mais 30 segundos para ler os dados necessários.

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

Aplica-se a

Produto Versões
.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)

Confira também