Get Connection String from Web.config in asp.net

Ammar Asjad picture Ammar Asjad · Sep 19, 2012 · Viewed 96.7k times · Source

I want to know the ways to get connection string from web.config file in asp.net.

I just only know the below way .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

    namespace Sherserve.DataAccessLayer
    {
        public class DBGateway
        {
            public static string conString;

            public DBGateway()
            {
                conString = ConfigurationManager.ConnectionStrings["test"].ToString();
            }
        }
    }

Answer

Using the ConfigurationManager.ConnectionStrings is about the only proper way, to use it properly with sanity check you can have such code:

public DBGateway()
{
    ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings["test"];
    if (mySetting == null || string.IsNullOrEmpty(mySetting.ConnectionString))
        throw new Exception("Fatal error: missing connecting string in web.config file");
    conString = mySetting.ConnectionString;
}

This will throw useful error in case the connection string is missing, instead of cryptic "null object" error.

Worth to mention that the ConnectionStringSettings class is overriding the ToString() method:

public override string ToString()
{
    return this.ConnectionString;
}

So it means that using ConfigurationManager.ConnectionStrings["test"].ToString() is the same like ConfigurationManager.ConnectionStrings["test"].ConnectionString however you still better perform sanity check and personally it looks cleaner to use the actual property and not depend on the class to give it.