Compartir a través de


SqlCommand.CommandTimeout Propiedad

Definición

Obtiene o establece el tiempo de espera (en segundos) antes de terminar el intento de ejecutar un comando y generar un error.

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

Valor de propiedad

Tiempo en segundos para esperar a que se ejecute el comando. El valor predeterminado es 30 segundos.

Implementaciones

Atributos

Comentarios

Un valor de 0 indica que no hay límite (un intento de ejecutar un comando esperará indefinidamente).

Nota:

La CommandTimeout propiedad se omitirá mediante llamadas asincrónicas de método asincrónico de APM (modelo de programación asincrónica) anteriores, como BeginExecuteReader. Los métodos tap (programación asincrónica de tareas) más recientes, como ExecuteReaderAsync.

CommandTimeout no tiene ningún efecto cuando el comando se ejecuta en una conexión de contexto (se SqlConnection abre con "context connection=true" en la cadena de conexión).

Nota:

Esta propiedad es el tiempo de espera acumulado (para todos los paquetes de red que se leen durante la invocación de un método) para todas las lecturas de red durante la ejecución del comando o el procesamiento de los resultados. Un tiempo de espera puede producirse después de que se devuelva la primera fila y no incluya el tiempo de procesamiento del usuario, solo el tiempo de lectura de red.

Por ejemplo, con un tiempo de espera de 30 segundos, si Read requiere dos paquetes de red, tiene 30 segundos para leer ambos paquetes de red. Si llama Read de nuevo, tendrá otros 30 segundos para leer los datos que necesite.

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

Se aplica a

Consulte también