i'm writing an application where user provides a conenction string manually and i'm wondering if there is any way that i could validate the connection string - i mean check if it's proper and if the database exists.
+14
A:
You could try to connect? For quick (offline) validation, perhaps use DbConnectionStringBuilder
to parse it...
DbConnectionStringBuilder csb = new DbConnectionStringBuilder();
csb.ConnectionString = "rubb ish"; // throws
But to check whether the db exists, you'll need to try to connect. Simplest if you know the provider, of course:
using(SqlConnection conn = new SqlConnection(cs)) {
conn.Open(); // throws if invalid
}
If you only know the provider as a string (at runtime), then use DbProviderFactories
:
string provider = "System.Data.SqlClient"; // for example
DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
using(DbConnection conn = factory.CreateConnection()) {
conn.ConnectionString = cs;
conn.Open();
}
Marc Gravell
2009-01-12 09:10:14