Reputation: 12709
How can I read a connection string from a web.config
file into a public class contained within a class library?
I've tried:
WebConfigurationManager
ConfigurationManager
But these classes are not recognized within my class library.
Upvotes: 274
Views: 464886
Reputation: 1004
Add Namespace System.Configuration as a reference then
using System.Configuration;
string conn = ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
Upvotes: 0
Reputation: 481
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;
C#
string constring = ConfigurationManager.ConnectionStrings["ABCD"].ConnectionString;
using (SqlConnection con = new SqlConnection(constring))
BELOW WEB.CONFIG FILE CODE
<connectionStrings>
<add name="ABCD" connectionString="Data Source=DESKTOP-SU3NKUU\MSSQLSERVER2016;Initial Catalog=TESTKISWRMIP;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
In the above Code ABCD is the Connection Name
Upvotes: 18
Reputation: 1038
You have to invoke this class on the top of your page or class :
using System.Configuration;
Then you can use this Method that returns the connection string to be ready to passed to the sqlconnection object to continue your work as follows:
private string ReturnConnectionString()
{
// Put the name the Sqlconnection from WebConfig..
return ConfigurationManager.ConnectionStrings["DBWebConfigString"].ConnectionString;
}
Just to make a clear clarification this is the value in the web Config:
<add name="DBWebConfigString" connectionString="....." /> </connectionStrings>
Upvotes: 12
Reputation: 2772
Add System.Configuration
as a reference.
For some bizarre reason it's not included by default.
Upvotes: 189
Reputation: 9084
In VB
: This should work
ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString
In C#
it would be (as per comment of Ala)
ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Upvotes: 16
Reputation: 11700
Everybody seems to be suggesting that adding
using System.Configuration;
which is true.
But might I suggest that you think about installing ReSharper's Visual Studio extension?
With it installed, instead of seeing an error that a class isn't defined, you'll see a prompt that tells you which assembly it is in, asking you if you want it to add the needed using statement.
Upvotes: 2
Reputation: 927
C#
// Add a using directive at the top of your code file
using System.Configuration;
// Within the code body set your variable
string cs = ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString;
VB
' Add an Imports statement at the top of your code file
Imports System.Configuration
' Within the code body set your variable
Dim cs as String = ConfigurationManager.ConnectionStrings("connectionStringName").ConnectionString
Upvotes: 69
Reputation: 52241
You need to add a reference to System.Configuration
and then use:
System.Configuration.ConfigurationManager.
ConnectionStrings["connectionStringName"].ConnectionString;
Upvotes: 547
Reputation: 51
using System.Configuration;
string connString = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
Remember don't Use ConnectionStrings[index] because you might of Global machine Config and Portability
Upvotes: 5
Reputation: 101
using System.Configuration;
string conn = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
Upvotes: 10
Reputation: 14781
I guess you need to add a reference to the System.Configuration assembly if that have not already been added.
Also, you may need to insert the following line at the top of your code file:
using System.Configuration;
Upvotes: 21
Reputation: 5103
Add System.Configuration
as a reference then:
using System.Configuration;
...
string conn =
ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
Upvotes: 29