How do you construct a DbConnection based on a provider name?
Sample provider names
- System.Data.SqlClient
 - System.Data.OleDb
 - System.Data.Odbc
 - FirebirdSql.Data.FirebirdClient
 
i have connection strings stored in my IIS server's web.config file:
<connectionStrings>
  <add name="development"
        connectionString="Provider = IBMDA400; Data Source = MY_SYSTEM_NAME; User Id = myUsername; Password = myPassword;" 
        providerName="System.Data.OleDb" />
  <add name="live" 
        connectionString="usd=sa;pwd=password;server=deathstar;" 
        providerName="System.Data.Odbc" />
  <add name="testing" 
        connectionString="usd=sa;pwd=password;server=deathstar;" 
        providerName="System.Data.SqlClient" />
  <add name="offline"
        connectionString="Server=localhost;User=SYSDBA;Password=masterkey;Charser=NONE;Database=c:\data\mydb.fdb"
        providerName="FirebirdSql.Data.FirebirdClient"/>
You can see they all use different providers. When it comes time for me to create a connection, i have to know what kind of DbConnection to create, e.g.:
- SqlConnection
 - OleDbConnection
 - OdbcConnection
 - FbConnection
 
The connectionStrings entries contains a providerName, but these aren't the names of DbConnection descendant classes, but appear to be a namespace
How do i turn construct a DbConnection based on a string providerName?
public DbConnection GetConnection(String connectionName)
{
    //Get the connectionString infomation
    ConnectionStringSettings cs = 
          ConfigurationManager.ConnectionStrings[connectionName];
    if (cs == null)
       throw new ConfigurationException("Invalid connection name \""+connectionName+"\");
    //Create a connection based on the provider
    DbConnection conn = new DbConnection();
}