Ich verwende VSTS 2008 + ADO.Net + C# + .Net 3.5 + SQL Server 2008. Ich verwende ADO.Net auf Clientseite, um eine Verbindung zum Datenbankserver herzustellen, um eine Speicherprozedur auszuführen, und dann zurückzukehren Ergebnis aus der Speicherprozedur.Timeouteinstellung für SQL Server
Hier ist mein Code. Ich habe zwei Fragen über Timeout,
Wenn ich ausdrücklich keine Timeout-bezogene Einstellungen festgelegt, für die Verbindung zum Datenbank-Server, gibt es Timeout-Einstellungen (zB wenn nicht für einige Standard-Menge an Datenbankserver verbinden von Zeit, gibt es einige Timeout-Ausnahme?)?
Wenn ich für die Ausführung der Speicherprozedur keine timeout-bezogenen Einstellungen explizit festlege, gibt es irgendwelche Timeout-Einstellungen (z. B. wenn die Ergebnisse vom Server für einige Zeit nicht auf den ADO.Net-Client abgerufen werden können, es wird eine Zeitüberschreitung geben Ausnahme?)?
using (SqlConnection currentConnection = new SqlConnection("Data Source=.;Initial Catalog=TestDB;Trusted_Connection=true;Asynchronous Processing=true")) { // check current batch conut currentConnection.Open(); using (SqlCommand RetrieveOrderCommand = new SqlCommand()) { RetrieveOrderCommand.Connection = currentConnection; RetrieveOrderCommand.CommandType = CommandType.StoredProcedure; RetrieveOrderCommand.CommandText = "prc_GetOrders"; RetrieveBatchCountCommand.Parameters.Add("@Count", SqlDbType.Int).Direction = ParameterDirection.Output; RetrieveBatchCountCommand.ExecuteNonQuery(); int rowCount = Convert.ToInt32(RetrieveOrderCommand.Parameters["@Count"].Value); } }
Th anks gbn!Welche Arten von Ausnahmen werden ausgelöst oder mit anderen Worten, welche Arten von Ausnahmen sollten wir in unserem Code erfassen, um das Zeitlimitproblem zu beheben? – George2
In SSMS, erhalte ich „Timeout abgelaufen. Die Timeout-Zeit vor dem Abschluss der Operation verstrichen ist, oder der Server nicht reagiert.“ Sie können mit WAITFOR DELAY '00: 00: 40 'testen, um eine Wartezeit von 40 Sekunden und eine Ausnahme für das Befehls-Timeout zu erzwingen. Für das Verbindungszeitlimit können Sie einen Servernamen erstellen und versuchen, eine Verbindung herzustellen. – gbn
Danke, für die Zeitüberschreitung des Befehls, welche Art von Ausnahme sollte abgefangen werden? – George2