CommandTimeout

sqlCom.CommandTimeout = 60;

Significado

CommandTimeout: tiempo límite de ejecución del comando, unidad: segundos

  • Valor por defecto: 30 segundos
  • En el ejemplo se asigna 60 → si la sentencia SQL no finaliza en 60 segundos, se lanza una excepción de tiempo agotado.
    Diferencia claramente estos dos timeouts
  1. ConnectionTimeout: se configura dentro de la cadena de conexión, tiempo límite para establecer la conexión con la base de datos
  2. CommandTimeout: entra en vigor tras conectar correctamente, tiempo de espera para ejecutar sentencias SQL

Ejemplo completo

private void button1_Click(object sender, EventArgs e)
{
    string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=xxx";
    // using libera automáticamente los recursos de SqlConnection
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        SqlCommand sqlCom = new SqlCommand();
        // Asociar conexión (elige una de las dos formas)
        sqlCom.Connection = conn;

        sqlCom.CommandText = "select 1";
        // Establecer tiempo límite de ejecución SQL en 60 segundos
        sqlCom.CommandTimeout = 60;

        object obj = sqlCom.ExecuteScalar();
        MessageBox.Show(obj.ToString());
    }
    // Al salir del bloque using, conn se cierra y libera solo, no hace falta llamar conn.Close() manualmente
}Lenguaje del código: JavaScript (javascript)

Consideraciones

  1. No se admiten valores negativos. El 0 significa espera indefinida (no recomendado, puede colgar la aplicación)
  2. Solo afecta a esta instancia concreta de SqlCommand, no es una configuración global
  3. Aumenta este valor cuando los procedimientos almacenados tardan mucho.
    En producción prioriza optimizar el SQL, no solo elevar el tiempo‑límite sin control.

Inicialización abreviada (estilo inicializador de objeto)

SqlCommand sqlCom = new SqlCommand("select 1", conn)
{
    CommandTimeout = 60
};Lenguaje del código: JavaScript (javascript)

Configuración del timeout de conexión

Se define dentro de la cadena de conexión y no interfiere con CommandTimeout:

Data Source=.;Initial Catalog=db;User ID=sa;Password=xxx;Connect Timeout=15

Connect Timeout=15 → espera máxima de 15 segundos al intentar conectarse a la base de datos.

CommandTimeout

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *