Curtis
Curtis

Reputation: 103428

SqlConnection in C#

In VB.NET I can use:

Protected Conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Active").ConnectionString)

However, when I do the following in C#:

protected SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings("conn"));

I get the error:

The name 'ConfigurationManager' does not exist in the current context

Then if I change it to:

protected SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("conn"));

I get the error:

Non-invocable member 'System.Configuration.ConfigurationManager.ConnectionStrings' cannot be used like a method.

Why is this and how can I connect to my SQL Server database using C#?

Upvotes: 4

Views: 4024

Answers (3)

Neil Fenwick
Neil Fenwick

Reputation: 6184

In C#, you read collections using square bracket syntax:

e.g.

string[] strings = new[] { "first", "second", "third" };

string secondString = strings[1];

So you access the Configuration collection like this:

ConfigurationManager.ConnectionStrings["conn"];

Upvotes: 2

Ofer Zelig
Ofer Zelig

Reputation: 17508

Change the last pair of parentheses to square brackets. In C#, parentheses are used in method calls, whether square brackets are used to access members inside a collection (or so).

In addition, use the using clause to ensure that the connection is always closed and disposed when you go out of scope:

using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn"]))
{
...
}

Read about it here: http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.80).aspx

Upvotes: 8

Darin Dimitrov
Darin Dimitrov

Reputation: 1039498

Try like this:

protected SqlConnection conn = new SqlConnection(
    ConfigurationManager.ConnectionStrings["conn"].ConnectionString
);

Notice the [] instead of () which is what is used to access an element of an array in C#. Also notice the usage of the .ConnectionString property call as the SqlConnection constructor expects a string.

Upvotes: 11

Related Questions