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
ConnectionTimeout: wird in der Verbindungszeichenfolge festgelegt, Timeout beim Aufbau der DatenbankverbindungCommandTimeout: 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
- Negative Werte sind ungültig. 0 bedeutet unbegrenztes Warten (nicht empfohlen, Anwendung kann einfrieren)
- Gilt nur für diese einzelne
SqlCommand‑Instanz, keine globale Einstellung - 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
Previous: SqlCommand