1. ホーム
  2. c#

[解決済み] 接続文字列が有効かどうかを確認するには?

2023-04-25 01:59:43

質問

私は、ユーザーが手動で接続文字列を提供するアプリケーションを書いています。私は、接続文字列を検証する方法があるかどうか疑問に思っています - つまり、それが正しいかどうか、データベースが存在するかどうかをチェックします。

どのように解決するのですか。

接続を試みることができますか?迅速な(オフラインの)検証には、おそらく DbConnectionStringBuilder を使って解析してみてください...

    DbConnectionStringBuilder csb = new DbConnectionStringBuilder();
    csb.ConnectionString = "rubb ish"; // throws

しかし、データベースが存在するかどうかを確認するためには、接続を試みる必要があります。もちろん、プロバイダがわかっていれば一番簡単です。

    using(SqlConnection conn = new SqlConnection(cs)) {
        conn.Open(); // throws if invalid
    }

もしプロバイダを文字列としてしか知らない場合(実行時)には DbProviderFactories :

    string provider = "System.Data.SqlClient"; // for example
    DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
    using(DbConnection conn = factory.CreateConnection()) {
        conn.ConnectionString = cs;
        conn.Open();
    }