CommandTimeout

sqlCom.CommandTimeout = 60;

Signification

CommandTimeout : délai d’expiration de l’exécution de commande, unité : seconde

  • Valeur par défaut : 30 secondes
  • Ici réglé à 60 : si l’instruction SQL ne se termine pas au bout de 60 secondes, une exception de dépassement de délai est levée.
    Faites bien la différence entre ces deux timeouts
  1. ConnectionTimeout : défini dans la chaîne de connexion, délai pour établir la connexion base de données
  2. CommandTimeout : agit après connexion réussie, délai d’attente de l’exécution SQL

Exemple complet

private void button1_Click(object sender, EventArgs e)
{
    string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=xxx";
    // using libère automatiquement la ressource SqlConnection
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        SqlCommand sqlCom = new SqlCommand();
        // Associer la connexion (deux syntaxes au choix)
        sqlCom.Connection = conn;

        sqlCom.CommandText = "select 1";
        // Délai d’exécution SQL fixé à 60 secondes
        sqlCom.CommandTimeout = 60;

        object obj = sqlCom.ExecuteScalar();
        MessageBox.Show(obj.ToString());
    }
    // À la fin du bloc using, conn se ferme et se libère automatiquement, pas besoin de conn.Close() manuel
}Langage du code : JavaScript (javascript)

Points importants

  1. Les valeurs négatives sont interdites. 0 signifie attente infinie (déconseillé, risque de bloquer l’application)
  2. Ne s’applique qu’à cette instance de SqlCommand, ce n’est pas un paramètre global
  3. Augmentez cette valeur quand une procédure stockée est très lente.
    Privilégiez toujours l’optimisation SQL plutôt que d’augmenter sans cesse le timeout.

Initialisation concise (style initialiseur d’objet)

SqlCommand sqlCom = new SqlCommand("select 1", conn)
{
    CommandTimeout = 60
};Langage du code : JavaScript (javascript)

Configuration du timeout de connexion

Indiqué dans la chaîne de connexion, indépendant de CommandTimeout :

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

Connect Timeout=15 : attente maximale de 15 secondes pour tenter d’ouvrir la connexion.

CommandTimeout

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *