2017-05-22 4 views

Antwort

0

Sie müssen die Time-out auf der Verbindungszeichenfolge und nicht die Tabelle Adapter ändern:

Connection timeout for SQL server

Viel Glück.

+0

Vielen Dank. Es hat seinen Job gemacht. –

+0

Gestern hat es funktioniert. Heute habe ich wie vorher eine Auszeit bekommen - nach 30 Sek. –

+0

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 –

1

Es gibt zwei Orte, an denen wir Timeouts einstellen können.

  1. SqlConnection
  2. 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:

+0

Ich habe Verbindung Timeout in der Verbindungszeichenfolge.Es hat funktioniert.Aber heute habe ich "Timeout-Verbindung" nach 30 Sekunden wie zuvor.Ich weiß nicht, wie kann ich das lösen .. –

+0

Haben Sie haben versucht, 'Adapter.SelectCommand.CommandTimeout' zu setzen? Können Sie überprüfen, welche Zeitüberschreitung es für' Connection' für 'SelectCommand' gibt? Es kann ein beliebiger Grund sein, aber haben Sie daran gedacht, Ihre Daten schneller zu laden? einige Indizes auf dem Server? – TheVillageIdiot

+0

Wie ich verstehe, können Sie CommandTimeout nicht für typisierte TableAdapter festlegen, da keine öffentliche Eigenschaft verfügbar gemacht wird Die partielle TableAdapter-Klasse wurde verwaltet und der CommandTimeout-Wert wurde festgelegt. Dann habe ich diese Eigenschaft aus der Windows Form-Klasse mit diesem TableAdapter aufgerufen. –

Verwandte Themen