SqlCommand.CommandTimeout Propriedade

Definição

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

public:
 property int CommandTimeout { int get(); void set(int value); };
public:
 virtual property int CommandTimeout { int get(); void set(int value); };
[System.Data.DataSysDescription("DbCommand_CommandTimeout")]
public int CommandTimeout { get; set; }
public override int CommandTimeout { get; set; }
[<System.Data.DataSysDescription("DbCommand_CommandTimeout")>]
member this.CommandTimeout : int with get, set
member this.CommandTimeout : int with get, set
Public Property CommandTimeout As Integer
Public Overrides Property CommandTimeout As Integer

Valor de Propriedade

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

Implementações

Atributos

Observações

Um valor 0 indica que não há limite (uma tentativa de executar um comando espera indefinidamente).

Note

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

CommandTimeout não tem efeito quando o comando é executado contra uma ligação de contexto (um SqlConnection aberto com "context connection=true" no cadeia de ligação).

Note

Esta propriedade é o time-out 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 de comandos ou o processamento dos resultados. Um time-out pode ainda ocorrer após a primeira linha ser devolvida, e não inclui o tempo de processamento do utilizador, apenas o tempo de leitura da rede.

Por exemplo, com um timeout de 30 segundos, se Read for necessário dois pacotes de rede, então tem 30 segundos para ler ambos os pacotes de rede. Se ligar Read novamente, terá mais 30 segundos para ler quaisquer dados que necessite.

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

Ver também