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 délai d’attente (en secondes) avant de mettre fin à 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é
Durée en secondes d'attente de l'exécution de la commande. La valeur par défaut est 30 secondes.
Implémente
- Attributs
Remarques
La valeur 0 indique aucune limite (une tentative d’exécution d’une commande attendra indéfiniment).
Notes
La CommandTimeout propriété sera ignorée par les anciens appels de méthode asynchrone APM (Asynchrone Programming Model) tels que BeginExecuteReader. Il sera honoré par les nouvelles méthodes TAP (Task Asynchrone Programming) telles que ExecuteReaderAsync.
CommandTimeoutn’a aucun effet lorsque la commande est exécutée sur une connexion de contexte (un SqlConnection ouvert avec « context connection=true » dans le chaîne de connexion).
Notes
Cette propriété est le délai d’attente cumulé (pour tous les paquets réseau qui sont lus pendant l’appel d’une méthode) pour toutes les lectures réseau pendant l’exécution de la commande ou le traitement des résultats. Un délai d’attente peut toujours se produire après le retour de la première ligne, et n’inclut pas le temps de traitement de l’utilisateur, uniquement le temps de lecture réseau.
Par exemple, avec un délai d’expiration de 30 secondes, si Read nécessite deux paquets réseau, il dispose de 30 secondes pour lire les deux paquets réseau. Si vous appelez Read à nouveau, il disposera de 30 secondes pour lire les données dont il 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);
}
}
}
}