SqlCommand.CommandTimeout Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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);
}
}
}
}