SqlCommand.CommandTimeout Eigenschap

Definitie

Hiermee haalt u de wachttijd (in seconden) op of stelt u deze in voordat u de poging om een opdracht uit te voeren beëindigt en een fout genereert.

public:
 property int CommandTimeout { int get(); void set(int value); };
public:
 virtual property int CommandTimeout { int get(); void set(int value); };
[System.Data.DataSysDescription("DbCommand_CommandTimeout")]
public int CommandTimeout { get; set; }
public override int CommandTimeout { get; set; }
[<System.Data.DataSysDescription("DbCommand_CommandTimeout")>]
member this.CommandTimeout : int with get, set
member this.CommandTimeout : int with get, set
Public Property CommandTimeout As Integer
Public Overrides Property CommandTimeout As Integer

Waarde van eigenschap

De tijd in seconden om te wachten totdat de opdracht is uitgevoerd. De standaardwaarde is 30 seconden.

Implementeringen

Kenmerken

Opmerkingen

Een waarde van 0 geeft geen limiet aan (een poging om een opdracht uit te voeren, wacht voor onbepaalde tijd).

Note

De CommandTimeout eigenschap wordt genegeerd door oudere APM-aanroepen (Asynchroon programmeermodel) asynchrone methodeaanroepen zoals BeginExecuteReader. Het wordt gehonoreerd door nieuwere TAP-methoden (Taak asynchrone programmering), zoals ExecuteReaderAsync.

CommandTimeout heeft geen effect wanneer de opdracht wordt uitgevoerd op basis van een contextverbinding (een SqlConnection geopend met 'context connection=true' in de verbindingsreeks).

Note

Deze eigenschap is de cumulatieve time-out (voor alle netwerkpakketten die worden gelezen tijdens het aanroepen van een methode) voor alle netwerkleesbewerkingen tijdens het uitvoeren of verwerken van de resultaten. Er kan nog steeds een time-out optreden nadat de eerste rij is geretourneerd en bevat geen verwerkingstijd voor gebruikers, alleen leestijd voor het netwerk.

Bijvoorbeeld, met een time-out van 30 seconden, als Read er twee netwerkpakketten nodig zijn, heeft het 30 seconden om beide netwerkpakketten te lezen. Als u opnieuw belt Read , duurt het nog 30 seconden om de gegevens te lezen die hiervoor nodig zijn.

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

Van toepassing op

Zie ook