CommandTimeout

sqlCom.CommandTimeout = 60;

Bedeutung

CommandTimeout: Ausführungs‑Timeout für Befehle, Einheit: Sekunden

  • Standardwert: 30 Sekunden
  • Im Beispiel auf 60 gesetzt: Wird die SQL‑Anweisung nicht innerhalb von 60 Sekunden fertig, wird eine Timeout‑Ausnahme geworfen.
    Unterscheide diese zwei Timeout‑Einstellungen genau
  1. ConnectionTimeout: wird in der Verbindungszeichenfolge festgelegt, Timeout beim Aufbau der Datenbankverbindung
  2. CommandTimeout: greift nach erfolgreicher Verbindung, Warte‑Timeout für die Ausführung von SQL‑Anweisungen

Vollständiges Beispiel

private void button1_Click(object sender, EventArgs e)
{
    string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=xxx";
    // using gibt SqlConnection‑Ressourcen automatisch frei
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        SqlCommand sqlCom = new SqlCommand();
        // Verbindung zuweisen (eine von beiden Schreibweisen verwenden)
        sqlCom.Connection = conn;

        sqlCom.CommandText = "select 1";
        // SQL‑Ausführungs‑Timeout auf 60 Sekunden setzen
        sqlCom.CommandTimeout = 60;

        object obj = sqlCom.ExecuteScalar();
        MessageBox.Show(obj.ToString());
    }
    // Am Ende des using‑Blocks wird conn automatisch geschlossen und freigegeben, manuelles conn.Close() ist nicht nötig
}Code-Sprache: JavaScript (javascript)

Hinweise

  1. Negative Werte sind ungültig. 0 bedeutet unbegrenztes Warten (nicht empfohlen, Anwendung kann einfrieren)
  2. Gilt nur für diese einzelne SqlCommand‑Instanz, keine globale Einstellung
  3. Erhöhe diesen Wert, falls gespeicherte Prozeduren sehr langsam laufen.
    Optimiere zuerst deine SQL‑Abfragen, anstatt nur den Timeout beliebig hochzusetzen.

Kurzschreibweise mit Objekt‑Initializer

SqlCommand sqlCom = new SqlCommand("select 1", conn)
{
    CommandTimeout = 60
};Code-Sprache: JavaScript (javascript)

Einstellung für Verbindungs‑Timeout

Wird in der Verbindungszeichenfolge angegeben und beeinflusst CommandTimeout nicht:

Data Source=.;Initial Catalog=db;User ID=sa;Password=xxx;Connect Timeout=15

Connect Timeout=15 : maximal 15 Sekunden Wartezeit beim Versuch, eine Datenbankverbindung herzustellen.

CommandTimeout

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert