Sdílet prostřednictvím


SqlCommand.CommandTimeout Vlastnost

Definice

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

Platí pro

Viz také