agn*_*zka 73 c# connection-string
我正在编写一个用户手动提供连接字符串的应用程序,我想知道是否有任何方法可以验证连接字符串 - 我的意思是检查它是否正确以及数据库是否存在.
Mar*_*ell 138
你可以尝试连接?对于快速(离线)验证,也许用于DbConnectionStringBuilder解析它...
DbConnectionStringBuilder csb = new DbConnectionStringBuilder();
csb.ConnectionString = "rubb ish"; // throws
Run Code Online (Sandbox Code Playgroud)
但要检查数据库是否存在,您需要尝试连接.如果您了解提供商,最简单的当然是:
using(SqlConnection conn = new SqlConnection(cs)) {
conn.Open(); // throws if invalid
}
Run Code Online (Sandbox Code Playgroud)
如果您只将提供程序知道为字符串(在运行时),则使用DbProviderFactories:
string provider = "System.Data.SqlClient"; // for example
DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
using(DbConnection conn = factory.CreateConnection()) {
conn.ConnectionString = cs;
conn.Open();
}
Run Code Online (Sandbox Code Playgroud)
Ras*_*ara 13
试试这个.
try
{
using(var connection = new OleDbConnection(connectionString)) {
connection.Open();
return true;
}
}
catch {
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果目标是有效性而不是存在,则以下方法将起作用:
try
{
var conn = new SqlConnection(TxtConnection.Text);
}
catch (Exception)
{
return false;
}
return true;
Run Code Online (Sandbox Code Playgroud)