tavier
tavier

Reputation: 1794

How to access the default connection string from web.config in c#

I have my config file with below configurations:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />
  </configSections>
  <dataConfiguration defaultDatabase="myConnectionString" />
  <connectionStrings>
    <add name="myConnectionString" connectionString="Data Source=mydatasource;Max Pool Size=100;Pooling=true; Initial Catalog=MyDB;User ID=Myuser;Password=Password;Connection Timeout=60" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
  </startup>
</configuration>

As you can see, I have set the default dataconfiguration to use myConnectionString as the default connection string, but in code behind (c#) how can I access this connection string without having to provide the name i.e. myConnectionString

So in below code:

string connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;

SqlConnection cnn = new SqlConnection(connectionString);

SqlBulkCopy sbc = new SqlBulkCopy(cnn);

I would like to skip hardcoding the name of the connection string.

Upvotes: 0

Views: 2074

Answers (1)

Gerino
Gerino

Reputation: 1983

var dataConfig = (Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings)System.Configuration.ConfigurationManager.GetSection(
    "dataConfiguration");

string connectionString = ConfigurationManager.ConnectionStrings[dataConfig.DefaultDatabase].ConnectionString;

That's what I can tell from typical usage of custom config sections and DatabaseSettings class.

EDIT: I have tested it in LINQPad with your exact app.config, got result:

Data Source=mydatasource;Max Pool Size=100;Pooling=true; Initial Catalog=MyDB;User ID=Myuser;Password=Password;Connection Timeout=60

Upvotes: 3

Related Questions