Multiple SQL Server connection strings in app.config file

自作多情 提交于 2019-11-29 06:10:51

To find all defined connection strings from your app.config, use the ConfigurationManager (from System.Configuration).

It has an enumeration: ConfigurationManager.ConnectionStrings which contains all entries in your <connectionStrings>.

You can loop over it with this code:

foreach(ConnectionStringSettings css in ConfigurationManager.ConnectionStrings)
{
   string name = css.Name;
   string connString = css.ConnectionString;
   string provider = css.ProviderName;
}

The Name is just the symbolic name you give your connection string - it can be anything, really.

The ConnectionString is the connection string itself.

The ProviderName is the name of the provider for the connection, e.g. System.Data.SqlClient for SQL Server (and others for other database system). If you omit the providerName= attribute from your connection string in config, it defaults to SQL Server (System.Data.SqlClient).

Marc

Use the connectionStrings section to define your connection strings.

<connectionStrings>
    <add name="connection1" connectionString="user id=user;password=123;server=10.0.0.1;database=myDatabase;connection timeout=30"/>
    <add name="connection2" connectionString="user id=user;password=123;server=10.0.0.2;database=myDatabase;connection timeout=30"/>
</connectionStrings>

Yes, it is possible to do this in another way. Check the connectionStrings section that you can make in the app.config file.

<configuration>
   <connectionStrings>
       <add name="" connectionString=""/>
        <add name="" connectionString=""/>
    </connectionStrings>
</configuration>

We can declare multiple connection string under Web.Config or App.Config

<connectionStrings>
<add name="SourceDB" connectionString="..." />
<add name="DestinationDB" connectionString="..." />
</connectionStrings>

In DAL or .cs file you can access connection strings like this string SounceConnection = ConfigurationManager.ConnectionStrings["SourceDB"].ConnectionString; string DestinationConnection = ConfigurationManager.ConnectionStrings["DestinationDB"].ConnectionString;

You can use the AppSettings class, get a list of all keys that start with ConnectionString and display them.

Your config file will look like this:

<appSettings>
  <add key="ConnectionString_Name1" value="..."/>
  <add key="ConnectionString_Name2" value="..."/>
  <add key="ConnectionString_Name3" value="..."/>
</appSettings>

You can get the name, by splitting the key name (using "_" in this example).

BTW: You should also use the ConnectionStrings section, you are only interrested in connection strings.

This is how to use LINQ to get list of connection strings:

List<string> connectionStrings = ConfigurationManager.ConnectionStrings
    .Cast<ConnectionStringSettings>()
    .Select(v => v.ConnectionString)
    .ToList();

Or you can build a dictionary of it:

Dictionary<string/*name*/, string/*connectionString*/> keyValue = ConfigurationManager.ConnectionStrings
    .Cast<ConnectionStringSettings>()
    .ToDictionary(v => v.Name, v => v.ConnectionString);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!