Testen Sie sql-Verbindung ohne Ausnahme werfen
Testen ob ich eine Verbindung zu meiner Datenbank führe ich folgenden code :
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
try
{
connection.Open();
canConnect = true;
}
catch (SqlException) { }
}
Diese funktioniert, außer es wirft eine Ausnahme wenn die Verbindung fehlgeschlagen ist. Gibt es irgendeine andere Möglichkeit zu testen, eine Sql-Verbindung, die nicht eine Ausnahme werfen ?
Bearbeiten :
Hinzufügen Präzision, Frage ich mich, wenn es gibt eine einfache Methode, die bedeutet, dass die zimmerreserviereung, ohne das öffnen der Verbindung und fangen Sie die Ausnahmen, die auftreten können,
- Warum wollen Sie vermeiden die Ausnahme?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Versuch, eine Verbindung zu öffnen, es gibt keinen Weg, um zu vermeiden die Ausnahme, wenn die Verbindung nicht geöffnet werden kann. Es kann verborgen bleiben in einer Funktion irgendwo, aber du wirst die Ausnahme, egal, was.
War es gestaltet wie diese, weil in der Regel Sie voraussichtlich in der Lage sein, eine Verbindung zur Datenbank herstellen. Eine fehlgeschlagene Verbindung ist die Ausnahme.
Dass gesagt wird, können Sie testen, die aktuellen Verbindungsstatus jederzeit durch die überprüfung der
State
Eigenschaft.schreiben Sie eine Erweiterung wie so:
Dann kann man Sie konsumieren wie:
HTH.
Wenn es wirft eine Ausnahme, und Sie Griff es in Ihrer catch-block, den Sie bereits wissen, die Verbindung fehlgeschlagen ist. Ich denke, dass Sie Ihre eigene Frage beantwortet.
Denke ich die richtige Antwort hier ist ping.
Es sei denn, Sie sind explizit zu prüfen, wenn eine sql-Verbindung möglich ist, 9/10, sollten Sie wissen, wenn etwas ist ein sql-server. Dies würde sparen Sie die bösen memory-Nutzung eine Ausnahme, die ist, was ich bin Wetten Sie wirklich nach.
Können Sie immer verwenden Sie die
ConnectionStringBuilder
Klasse und überprüfen Sie für die Existenz jedes Stück, das benötigt wird, durch einen connection-string, bevor Sie versuchen, es zu öffnen.Wenn der connection-string richtig ist, aber der Datenbank-server, mit dem Sie eine Verbindung herstellen möchten, nach unten, du bist noch zu bekommen excepton. Irgendwie sinnlos, zu überprüfen, die Qualität der saite liegen, wenn der Endpunkt mit dem Sie sich verbinden können möglicherweise offline.
Kann man nicht vermeiden, Ausnahme kommt beim verbinden mit der Datenbank aber eine Funktion zu haben, die sich mit diesem sehr gut. Ich verwende diese Funktion, die true zurückgibt, wenn die Verbindung vorhanden ist.