ユーザーが接続文字列を手動で提供するアプリケーションを作成していますが、接続文字列を検証できる方法があるかどうか疑問に思っています。つまり、接続文字列が正しいかどうか、データベースが存在するかどうかを確認します。
102669 次
4 に答える
158
接続してみては?迅速な(オフライン)検証のために、おそらく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();
}
于 2009-01-12T09:10:14.000 に答える
16
これを試して。
try
{
using(var connection = new OleDbConnection(connectionString)) {
connection.Open();
return true;
}
}
catch {
return false;
}
于 2014-03-28T09:11:10.203 に答える
7
目標が存在ではなく有効性である場合、次のようにします。
try
{
var conn = new SqlConnection(TxtConnection.Text);
}
catch (Exception)
{
return false;
}
return true;
于 2015-10-21T15:04:12.180 に答える