SqlCommand.CommandTimeout Egenskap

Definition

Hämtar eller anger väntetiden (i sekunder) innan du avslutar försöket att köra ett kommando och genererar ett fel.

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

Egenskapsvärde

Tiden i sekunder för att vänta innan kommandot körs. Standardvärdet är 30 sekunder.

Implementeringar

Attribut

Kommentarer

Värdet 0 anger ingen gräns (ett försök att köra ett kommando väntar på obestämd tid).

Note

Egenskapen CommandTimeout ignoreras av äldre APM-anrop (Asynkron programmeringsmodell) som till exempel BeginExecuteReader. Det kommer att respekteras av nyare TAP-metoder (aktivitetssynkron programmering), till exempel ExecuteReaderAsync.

CommandTimeout har ingen effekt när kommandot körs mot en kontextanslutning (en SqlConnection öppnas med "context connection=true" i reťazec pripojenia).

Note

Den här egenskapen är den kumulativa tidsgränsen (för alla nätverkspaket som läss under anropet av en metod) för alla nätverksläsningar under kommandokörningen eller bearbetningen av resultaten. En timeout kan fortfarande inträffa efter att den första raden har returnerats och inkluderar inte användarens bearbetningstid, endast nätverksläsningstid.

Till exempel med en tidsgräns på 30 sekunder, om Read det krävs två nätverkspaket, så har det 30 sekunder att läsa båda nätverkspaketen. Om du anropar Read igen har det ytterligare 30 sekunder på sig att läsa alla data som krävs.

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

Gäller för

Se även