SqlCommand.CommandTimeout Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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);
}
}
}
}