SqlCommand.CommandTimeout Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit le temps d’attente (en secondes) avant de terminer la tentative d’exécution d’une commande et de générer une erreur.
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
Valeur de propriété
Temps en secondes d’attente de l’exécution de la commande. La valeur par défaut est de 30 secondes.
Implémente
- Attributs
Remarques
La valeur 0 indique aucune limite (une tentative d’exécution d’une commande attend indéfiniment).
Note
La CommandTimeout propriété est ignorée par les appels de méthode asynchrone APM (modèle de programmation asynchrone) plus anciens, tels que BeginExecuteReader. Il sera honoré par les nouvelles méthodes TAP (programmation asynchrone de tâche) telles que ExecuteReaderAsync.
CommandTimeout n’a aucun effet lorsque la commande est exécutée sur une connexion de contexte (ouverte SqlConnection avec « context connection=true » dans la chaîne de connexion).
Note
Cette propriété est le délai d’attente cumulé (pour tous les paquets réseau lus pendant l’appel d’une méthode) pour toutes les lectures réseau pendant l’exécution de commandes ou le traitement des résultats. Un délai d’attente peut toujours se produire une fois que la première ligne est retournée et n’inclut pas le temps de traitement de l’utilisateur, uniquement l’heure de lecture du réseau.
Par exemple, avec un délai d’expiration de 30 secondes, si Read deux paquets réseau sont requis, il a 30 secondes pour lire les deux paquets réseau. Si vous appelez Read à nouveau, il aura une autre 30 secondes pour lire les données dont elle a besoin.
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);
}
}
}
}