SqlCommand.CommandTimeout Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví dobu čekání (v sekundách) před ukončením pokusu o spuštění příkazu a generování chyby.
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
Hodnota vlastnosti
Doba v sekundách čekání na spuštění příkazu. Výchozí hodnota je 30 sekund.
Implementuje
- Atributy
Poznámky
Hodnota 0 značí žádný limit (pokus o spuštění příkazu počká na neomezenou dobu).
Poznámka:
Vlastnost CommandTimeout bude ignorována staršími voláními asynchronní metody APM (asynchronní programovací model), jako BeginExecuteReaderje . Bude respektována novějšími metodami TAP (asynchronní programování úkolů), jako ExecuteReaderAsyncje .
CommandTimeout nemá žádný vliv, pokud se příkaz spustí v kontextu připojení (v připojovacím řetězci se SqlConnection otevře s textem context connection=true).
Poznámka:
Tato vlastnost je kumulativní časový limit (pro všechny síťové pakety, které se čtou během vyvolání metody) pro všechna čtení sítě během provádění příkazu nebo zpracování výsledků. Po vrácení prvního řádku může dojít k vypršení časového limitu a nezahrnuje dobu zpracování uživatele, pouze dobu čtení sítě.
Například při vypršení časového limitu 30 sekund, pokud Read vyžaduje dva síťové pakety, má 30 sekund pro čtení obou síťových paketů. Pokud budete volat Read znovu, bude mít další 30 sekund, než přečte všechna data, která vyžadují.
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);
}
}
}
}