Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if connection string is valid?

I'm writing an application where a user provides a connection string manually and I'm wondering if there is any way that I could validate the connection string - I mean check if it's correct and if the database exists.

like image 738
agnieszka Avatar asked Jan 12 '09 09:01

agnieszka


1 Answers

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();     } 
like image 61
Marc Gravell Avatar answered Sep 26 '22 03:09

Marc Gravell