Skip to content
Igor Tkachev edited this page May 20, 2016 · 1 revision

Home / Data

Configure using app.config

Since Microsoft has released FW 2.0 and the section of configuration file is available, it should be used. This configuration method is preferable. The following method demonstrates this ability.

OpenConfig1FW2.cs

using System;
using System.Data;

using NUnit.Framework;

using BLToolkit.Data;

namespace HowTo.Data
{
    [TestFixture]
    public class OpenConfig1FW2
    {
        [Test]
        public void FW2Configuration()
        {
            // <connectionString> section configuration supported in FW 2.0+.
            //
            using (DbManager db = new DbManager("DemoConnection"))
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }
    }
}

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add
            name             = "DemoConnection"
            connectionString = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"
            providerName     = "System.Data.SqlClient" />
    </connectionStrings>
</configuration>

In addition BLToolkit supports an alternative way which uses the section. At the bottom of this page you can find a demo App.config file with a few examples.

BLToolkit recognizes configuration strings in the section by looking for a ConnectionString key prefix. Actual key value can be the following:

key value Provider Configuration
key="ConnectionString" default provider default configuration
key="ConnectionString.Foo.Bar" 'Foo' provider 'Bar' configuration
key="ConnectionString.Foo." 'Foo' provider default configuration
key="ConnectionString.Foo" default provider 'Foo' configuration
or 'Foo' provider default configuration
key="ConnectionString..Foo" default provider 'Foo' configuration
key="ConnectionString..Foo.Bar" default provider 'Foo.Bar' configuration

Default provider is SqlDataProvider. See also Data Providers.

OpenConfig1.cs

using System;
using System.Data;

using NUnit.Framework;

using BLToolkit.Data;

namespace HowTo.Data
{
    [TestFixture]
    public class OpenConfig1
    {
        [Test]
        public void DefaultConfiguration()
        {
            // Default configuration and default data provider.
            //
            using (DbManager db = new DbManager())
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }

        [Test]
        public void DevelopmentConfiguration()
        {
            // Development configuration and default data provider.
            //
            using (DbManager db = new DbManager("Development"))
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }

        [Test]
        public void ProductionConfiguration()
        {
            // Production configuration and default data provider.
            //
            using (DbManager db = new DbManager("Production"))
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }

        [Test]
        public void OleDbDefaultConfiguration()
        {
            // Default configuration and OleDb data provider.
            //
            using (DbManager db = new DbManager("OleDb"))
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }

        [Test]
        public void OleDbDevelopmentConfiguration()
        {
            // Development configuration and OleDb data provider.
            //
            using (DbManager db = new DbManager("OleDb", "Development"))
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }

        [Test]
        public void OleDbProductionConfiguration()
        {
            // Production configuration and OleDb data provider.
            //
            using (DbManager db = new DbManager("OleDb", "Production"))
            {
                Assert.AreEqual(ConnectionState.Open, db.Connection.State);
            }
        }
    }
}

App.config

<?xml version="1.0"?>
<configuration>
    <connectionStrings>
        <add
            name             = "DemoConnection"
            connectionString = "Server=.;Database=BLToolkitData;Integrated Security=SSPI"
            providerName     = "System.Data.SqlClient" />
    </connectionStrings>
    <appSettings>
        <!-- Default configuration -->
        <add key="ConnectionString"                   value="Server=.;Database=BLToolkitData;Integrated Security=SSPI"/>
        <!-- SQL Server Development configuration -->
        <add key="ConnectionString.Development"       value="Server=.;Database=BLToolkitData;Integrated Security=SSPI"/>
        <!-- SQL Server Production configuration -->
        <add key="ConnectionString.Production"        value="Server=.;Database=BLToolkitData;Integrated Security=SSPI"/>
        <!-- SQL Server configuration -->
        <add key="ConnectionString.Sql"               value="Server=.;Database=BLToolkitData;Integrated Security=SSPI"/>
        <!-- OLEDB configuration -->
        <add key="ConnectionString.OleDb"             value="Provider=SQLOLEDB;Data Source=.;Integrated Security=SSPI;Initial Catalog=BLToolkitData"/>
        <!-- OLEDB Development configuration -->
        <add key="ConnectionString.OleDb.Development" value="Provider=SQLOLEDB;Data Source=.;Integrated Security=SSPI;Initial Catalog=BLToolkitData"/>
        <!-- OLEDB Production configuration -->
        <add key="ConnectionString.OleDb.Production"  value="Provider=SQLOLEDB;Data Source=.;Integrated Security=SSPI;Initial Catalog=BLToolkitData"/>
    </appSettings>
</configuration>

The default configuration can be set by a configuration file:

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <!-- MySql configuration -->
        <add
            key   = "ConnectionString.MySql"
            value = "..."/>
        <add
            key   = "BLToolkit.DefaultConfiguration"
            value = "MySql"/>
    </appSettings>
</configuration>
Clone this wiki locally