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
ConnectionTimeout: défini dans la chaîne de connexion, délai pour établir la connexion base de donnéesCommandTimeout: 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
- Les valeurs négatives sont interdites. 0 signifie attente infinie (déconseillé, risque de bloquer l’application)
- Ne s’applique qu’à cette instance de
SqlCommand, ce n’est pas un paramètre global - 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
Previous: SqlCommand