SqlCommand.CommandTimeout Eigenschaft

Definition

Ruft die Zeit (in Sekunden) ab, die gewartet werden soll, bis der Versuch einer Befehlsausführung beendet und ein Fehler generiert wird, oder legt diese fest.

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

Eigenschaftswert

Int32

Die Dauer in Sekunden, für die auf die Ausführung des Befehls gewartet werden soll. Der Standardwert ist 30 Sekunden.

Implementiert

Attribute

Hinweise

Ein Wert von 0 gibt keinen Grenzwert an (ein Versuch, einen Befehl auszuführen, wartet unbegrenzt).

Hinweis

Die CommandTimeout Eigenschaft wird von älteren APM (asynchrones Programmiermodell) asynchrone Methodenaufrufe wie BeginExecuteReaderz. B. ignoriert. Es wird durch neuere TAP (Task asynchrone Programmierung) Methoden wie z ExecuteReaderAsync. B.

CommandTimeout hat keinen Effekt, wenn der Befehl gegen eine Kontextverbindung ausgeführt wird (eine SqlConnection geöffnete Mit "context connection=true" in der Verbindungszeichenfolge).

Hinweis

Diese Eigenschaft ist der kumulative Timeout (für alle Netzwerkpakete, die während des Aufrufs einer Methode gelesen werden) für alle Netzwerklese während der Befehlsausführung oder Verarbeitung der Ergebnisse. Ein Timeout kann weiterhin auftreten, nachdem die erste Zeile zurückgegeben wurde, und enthält keine Benutzerverarbeitungszeit, nur Netzwerklesezeit.

Wenn Read z. B. zwei Netzwerkpakete erforderlich sind, hat sie beispielsweise 30 Sekunden, um beide Netzwerkpakete zu lesen. Wenn Sie erneut aufrufen Read , verfügt es über weitere 30 Sekunden, um alle daten zu lesen, die sie benötigt.

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

Gilt für

Siehe auch