So prüfen Sie die Existenz einer DB?
Frage ich mich, ob es einen eleganten Weg zu prüfen, die Existenz einer DB? In Kürze, wie Sie tun, testen Sie die Verbindung von einer db-connection-string?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die
Initial Catalog=master
in der Verbindungszeichenfolge und ausführen:mit
@name
auf den Namen der Datenbank.Wenn Sie wollen überprüfen Sie die Verbindungszeichenfolge als ganzes (und nicht die Existenz eines unabhängigen Datenbank), versuchen Sie es in ein
try/catch
block.Könnte man nur versuchen, die Verbindung zu es. Wenn es eine exception wirft, dann wird die Verbindungszeichenfolge ist schlecht, in irgendeiner Weise, entweder wird die Datenbank nicht existiert, das Passwort falsch ist, oder etwas anderes.
Decken die Palette der Möglichkeiten (server existiert nicht, die Datenbank existiert nicht, kein login, keine Berechtigungen, server down, etc.) - die einfachste Idee ist, es einfach zu versuchen, die Verbindung als normal, und führen Sie etwas trivial -
SELECT GETDATE()
zum Beispiel. Wenn Sie eine Ausnahme, es gibt ein problem!!!Gibt es Zeiten (vor allem beim Umgang mit out-of-process systems), wenn
try/catch
ist die pragmatischste option.Nur versuchen, eine DBConnection.Open() verpackt in einem try-block abfangen DBException.
Etwa so elegante Lösung wie Sie gehen zu finden.
versuchen
oder
oder SqlConnection.ChangeDatabase(String). Ich denke, es könnte auch weniger Ressourcen für sql server dann neue Verbindung versuchen.
Wenn Sie mithilfe von Entity Framework oder haben es Ihnen zur Verfügung, rufen Sie einfach Datenbank.Exists():
Dies ist was für mich gearbeitet, um zu überprüfen, die Existenz einer Postgres-Datenbank mit C#:
** Die, wenn in der try-catch-Anweisung könnte einfach überprüfen, ob die Rückkehr der ExecuteScalar ist null für nicht vorhandene DB-und nicht-null, wenn es vorhanden ist.
erhalten Sie Liste der Datenbank mit unten und überprüfen Sie Ihre db-name: