Sql-Verbindung testen ohne Ausnahme zu werfen

8

Um zu testen, ob ich mich mit meiner Datenbank verbinden kann, führe ich den folgenden Code aus:

%Vor%

Dies funktioniert, außer dass es eine Ausnahme auslöst, wenn die Verbindung fehlgeschlagen ist. Gibt es eine andere Möglichkeit, eine SQL-Verbindung zu testen, die keine Ausnahme auslöst?

Bearbeiten: Um Genauigkeit hinzuzufügen, frage ich, ob es eine einfache Methode gibt, die das macht, ohne die Verbindung zu öffnen und Ausnahmen zu erfassen, die auftreten können

    
Alexandre Pepin 08.04.2010, 16:06
quelle

6 Antworten

12

Beim Versuch, eine Verbindung zu öffnen, gibt es keine Möglichkeit, die Ausnahme zu vermeiden, wenn die Verbindung nicht geöffnet werden kann. Es kann irgendwo in einer Funktion versteckt werden, aber Sie werden die Ausnahme bekommen, egal was passiert.

Es wurde so entworfen, weil Sie normalerweise eine Verbindung zur Datenbank herstellen können. Eine fehlgeschlagene Verbindung ist die Ausnahme .

Sie können den aktuellen Verbindungsstatus jederzeit testen, indem Sie die State -Eigenschaft überprüfen.

    
Jon Seigel 08.04.2010, 17:38
quelle
3

Wenn es eine Ausnahme auslöst und Sie in Ihrem catch-Block damit umgehen, wissen Sie bereits, dass die Verbindung fehlgeschlagen ist. Ich denke, du hast deine eigene Frage beantwortet.

    
Brownman98 08.04.2010 16:14
quelle
2

Schreiben Sie eine Erweiterung wie folgt:

%Vor%

Dann kannst du es wie folgt konsumieren:

%Vor%

HTH.

    
Sunny 08.04.2010 16:13
quelle
0

Ich denke, die wirkliche Antwort hier ist Ping.

%Vor%

Wenn Sie nicht ausdrücklich überprüfen, ob eine SQL-Verbindung möglich ist, sollten Sie wissen, ob etwas ein SQL-Server ist. Dies würde Ihnen die unangenehme Speicherauslastung einer Ausnahme ersparen, auf die ich wirklich wetten möchte.

    
Arian 08.08.2011 04:36
quelle
0

Sie können immer die Klasse ConnectionStringBuilder verwenden und nach dem Vorhandensein jedes Stücks suchen, das für eine Verbindungszeichenfolge erforderlich ist, bevor Sie versuchen, es zu öffnen.

Wenn die Verbindungszeichenfolge korrekt ist, aber der Datenbankserver, mit dem Sie eine Verbindung herstellen, inaktiv ist, erhalten Sie trotzdem eine Ausnahme. Es ist sinnlos, die Qualität der Zeichenfolge zu überprüfen, wenn der Endpunkt, zu dem Sie eine Verbindung herstellen, möglicherweise offline ist.

    
dgarbacz 11.10.2012 18:42
quelle
0

Sie können nicht vermeiden, dass beim Verbinden der Datenbank eine Ausnahme auftritt, aber Sie haben eine Funktion, die das sehr gut beherrscht. Ich verwende diese Funktion, die wahr zurückgibt, wenn Verbindung besteht.

%Vor%     
Ankush Madankar 14.06.2013 10:35
quelle

Tags und Links