SqlCommand.CommandTimeout Propriété

Définition

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é

Int32

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 qu’aucune limite n’est définie (une tentative d’exécution d’une commande attend indéfiniment).

Notes

La CommandTimeout propriété sera ignorée par les appels de méthodes asynchrones APM (Asynchronous Programming Model) plus anciens, tels que BeginExecuteReader . Elle sera honorée par les méthodes TAP (tâche Asynchronous Programming) plus récentes telles que ExecuteReaderAsync .

CommandTimeout n’a aucun effet lorsque la commande est exécutée sur une connexion contextuelle (un SqlConnection ouvert avec « context connection = true » dans la chaîne de connexion).

Notes

Cette propriété correspond au 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 au cours de l’exécution de la commande ou du traitement des résultats. Un délai d’attente peut encore se produire après le renvoi de la première ligne et n’inclut pas le temps de traitement de l’utilisateur, mais uniquement le temps de lecture du réseau.

Par exemple, avec un délai d’expiration de 30 secondes, si Read requiert deux paquets réseau, il a 30 secondes pour lire les deux paquets réseau. Si vous appelez Read à nouveau, il aura 30 secondes d’autre pour lire les données requises.

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);  
         }  
      }  
   }  
}  

S’applique à

Voir aussi