SqlCommand.CommandTimeout Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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>