SqlCommand.CommandTimeout Eigenschaft

Definition

Ruft die Wartezeit (in Sekunden) ab, bevor der Versuch, einen Befehl auszuführen und einen Fehler zu generieren, beendet wird, oder legt diese fest.

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

Eigenschaftswert

Die Zeit in Sekunden, bis der Befehl ausgeführt wird. Der Standardwert ist 30 Sekunden.

Implementiert

Attribute

Hinweise

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

Note

Die CommandTimeout Eigenschaft wird von älteren asynchronen APM -Methodenaufrufen (asynchrones Programmiermodell) ignoriert, z BeginExecuteReader. B. . Es wird von neueren TAP -Methoden (Task Asynchronous Programming) wie ExecuteReaderAsync.

CommandTimeout hat keine Auswirkung, wenn der Befehl für eine Kontextverbindung ausgeführt wird (eine SqlConnection geöffnete mit "context connection=true" in der Verbindungszeichenfolge).

Note

Diese Eigenschaft ist das kumulative Timeout (für alle Netzwerkpakete, die während des Aufrufs einer Methode gelesen werden) für alle Netzwerklesevorgänge 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 z. B. zwei Netzwerkpakete erforderlich sind, Read muss bei einem Timeout von 30 Sekunden beide Netzwerkpakete gelesen werden. Wenn Sie erneut anrufen Read , hat es weitere 30 Sekunden, um alle benötigten Daten zu lesen.

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:

Weitere Informationen