SqlCommand.CommandTimeout Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el tiempo de espera (en segundos) hasta que se interrumpe el intento de ejecutar un comando y se genera 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
El tiempo en segundos que se ha de esperar para que se ejecute el comando. El valor predeterminado es 30 segundos.
Implementaciones
- Atributos
Comentarios
Un valor de 0 indica ningún 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.
CommandTimeoutno tiene ningún efecto cuando el comando se ejecuta en una conexión de contexto (un SqlConnection objeto abierto con "context connection=true" en el 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 se puede seguir produciendo después de que se devuelva la primera fila y no incluye el tiempo de procesamiento del usuario, solo 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.
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);
}
}
}
}