Compartir a través de


SqlCommand.CommandTimeout Propiedad

Definición

Obtiene o establece el tiempo de espera (en segundos) hasta que se interrumpe el intento de ejecutar un comando y se genera un error. El valor predeterminado es 30 segundos.

public:
 virtual property int CommandTimeout { int get(); void set(int value); };
public override int CommandTimeout { get; set; }
member this.CommandTimeout : int with get, set
Public Overrides Property CommandTimeout As Integer

Valor de propiedad

El tiempo en segundos que se ha de esperar para que se ejecute el comando. El valor predeterminado es 30 segundos.

Excepciones

El valor establecido es menor que 0.

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á durante las llamadas de método asincrónico de estilo anterior, como BeginExecuteReader. Los métodos asincrónicos más recientes, como ExecuteReaderAsync.

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 incluye 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 requiera.

// <Snippet1>
using System;
using Microsoft.Data.SqlClient;

public class A
{
    public static void Main()
    {
        string connectionString = "<Your-connection-string-here>";
        // 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);
            }
        }
    }
}
// </Snippet1>

Se aplica a