Ammar Asjad Ammar Asjad - 4 months ago 20
ASP.NET (C#) Question

Get Connection String from Web.config in asp.net

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.