2010-12-02 6 views
8

Mögliche Duplizieren:
How to check if connection string is valid?Gibt es eine .NET-Standardmethode zum Testen, ob eine SqlConnection-Zeichenfolge funktioniert?

Zur Zeit bin ich es, wie dies zu tun:

internal bool CheckConnection() 
{ 
    using (SqlConnection testConn = new SqlConnection(this.ConnectionString)) 
    { 
     try 
     { 
      testConn.Open(); 
     } 
     catch (SqlException) 
     { 
      return false; 
     } 
    } 
    return true; 
} 

Gibt es einen besseren Weg, dies zu tun?

+0

Es ist ein Duplikat. Würde löschen wenn ich könnte. – Crisfole

Antwort

4

Das ist so ziemlich der Weg, es zu tun. Sie sollten jedoch auch daran denken, einige andere Ausnahmetypen zu behandeln. Es kann other reasons why you don't connect zu einem Datenbankserver neben einem SQL-Problem geben.

Connection.Open kann neben SqlException auch InvalidOperationException und ArgumentException auslösen. Auch die APIs, die Aufrufe öffnen, können andere Arten von Ausnahmen auslösen, die auch in Ihren Code einfließen können. In der Tat ist dies einer der seltenen Fälle, in denen es vorzuziehen ist, die Basisausnahme zu behandeln und ihre Meldung dem Benutzer anzuzeigen. (Die allgemeine Faustregel gilt, nur die spezifischen Ausnahmen zu behandeln.)

+1

Sehr wahr: Die Datenbank könnte gültig sein, aber das Netzwerk ist ausgefallen, der Server wird neu gebootet usw. – JLWarlow

0

Nop, gibt es nicht ... das ist der einzige Weg,

Was Sie ist die SqlException fangen und ein wenig mehr Info Rückkehr inc ase von scheitern je nach Number in der Ausnahme