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. La valeur par défaut est 30 secondes.

public:
 virtual property int CommandTimeout { int get(); void set(int value); };
public override int CommandTimeout { get; set; }
member this.CommandTimeout : int with get, set
Public Overrides 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.

Exceptions

La valeur définie est inférieure à 0.

Remarques

La valeur 0 n’indique aucune limite (une tentative d’exécution d’une commande attendra indéfiniment).

Notes

La CommandTimeout propriété sera ignorée lors des appels de méthode asynchrone de style ancien, tels que BeginExecuteReader. Il sera honoré par les méthodes asynchrones plus récentes telles que ExecuteReaderAsync.

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 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 de plus pour lire les données nécessaires.

// <Snippet1>
using System;
using Microsoft.Data.SqlClient;

public class A
{
    public static void Main()
    {
        string connectionString = "<Your-connection-string-here>";
        // 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);
            }
        }
    }
}
// </Snippet1>

S’applique à