我正在编写一个用户手动提供连接字符串的应用程序,我想知道是否有任何方法可以验证连接字符串 - 我的意思是检查它是否正确以及数据库是否存在.
你可以尝试连接?对于快速(离线)验证,也许用于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(); }
试试这个.
try { using(var connection = new OleDbConnection(connectionString)) { connection.Open(); return true; } } catch { return false; }
如果目标是有效性而不是存在,则以下方法将起作用:
try { var conn = new SqlConnection(TxtConnection.Text); } catch (Exception) { return false; } return true;