Es gibt zwei Orte, an denen wir Timeouts einstellen können.
SqlConnection
SqlCommand
SqlConnection
hat ConnectionTimeout
Eigenschaft. Es gibt die Zeit an, auf die ADO.Net wartet, wenn es versucht, eine Verbindung zum Server herzustellen. Wenn keine Verbindung zum Server besteht (Netzwerk heruntergefahren/Server läuft nicht), wird eine Ausnahme ausgelöst.
SqlCommand
hat CommandTimeout
Eigenschaft. Sie gibt die Wartezeit an, nach der die Ergebnisse zurückkommen, wenn der Befehl ausgeführt wird (Sie rufen Execute
/ExecuteNoQuery
usw. an). Wenn in der angegebenen Zeit keine Ergebnisse zurückgegeben werden, wird eine Ausnahme ausgelöst. Standardmäßig beträgt das Zeitlimit des Befehls 30 Sekunden. Wenn der Befehl 50 Sekunden dauert, erhalten Sie eine Ausnahme. Für und SqlCommand
ist es einfach, einfach den Wert der Eigenschaft auf die Objekte zu setzen.
Für die TableAdapter
haben Sie zwei Möglichkeiten ConnectionTimeout
einzustellen (beide führen zum selben Ausgang). Zuerst wird in der Verbindungszeichenfolge festgelegt. Zweitens wird es im Eigenschaften-Dialogfeld Advanced
festgelegt, wenn Sie die Verbindung für den Adapter einrichten.
Für CommandTimeout
müssen Sie auf den spezifischen Befehl des Adapters zugreifen, der eine Zeitüberschreitung aufweist. Wenn der Auswahlbefehl in die Luft geht, können Sie folgendes verwenden:
Vielen Dank. Es hat seinen Job gemacht. –
Gestern hat es funktioniert. Heute habe ich wie vorher eine Auszeit bekommen - nach 30 Sek. –
Sie können es von 30 Sekunden aufwärts erhöhen nicht wirklich ratsam, wenn Daten so lange dauern, könnte ein Beziehungsproblem in den zugrundeliegenden Daten sein oder gerade ein merkwürdiges Verhalten beim Debuggen eines IIS express bei 3GB RAM Speicherauslastung gefunden :(Versuchen Sie zu ändern und ich sehe auf Ihre Tabelle Indizierung –