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é

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

S’applique à

Voir aussi