Condividi tramite


SqlCommand.CommandTimeout Proprietà

Definizione

Ottiene o imposta il tempo di attesa (in secondi) prima di terminare il tentativo di eseguire un comando e generare un errore. Il valore predefinito è 30 secondi.

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

Valore della proprietà

Tempo di attesa in secondi per l'esecuzione del comando. Il valore predefinito è 30 secondi.

Eccezioni

Il valore impostato è minore di 0.

Commenti

Il valore 0 indica che non è previsto alcun limite (un tentativo di esecuzione di un comando attenderà per un periodo illimitato).

Nota

La CommandTimeout proprietà verrà ignorata durante le chiamate di metodo asincrone in stile precedente, BeginExecuteReaderad esempio . Verrà rispettata dai metodi asincroni più recenti, ExecuteReaderAsyncad esempio .

Nota

Questa proprietà è il timeout cumulativo (per tutti i pacchetti di rete letti durante la chiamata di un metodo) per tutte le letture di rete durante l'esecuzione o l'elaborazione dei risultati. Un timeout può comunque verificarsi dopo la restituzione della prima riga e non include il tempo di elaborazione dell'utente, ma solo il tempo di lettura della rete.

Ad esempio, con un timeout di 30 secondi, se Read sono necessari due pacchetti di rete, la lettura di entrambi i pacchetti di rete è di 30 secondi. Se si chiama Read di nuovo, saranno necessari altri 30 secondi per leggere i dati necessari.

// <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>

Si applica a