Partager via


SqlCommand.CommandTimeout Propriété

Définition

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

S’applique à

Voir aussi