SqlConnection в C # - PullRequest
       7

SqlConnection в C #

4 голосов
/ 21 августа 2011

В VB.NET я могу использовать:

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

Однако, когда я делаю следующее в C #:

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

Я получаю ошибку:

Имя 'ConfigurationManager' не существует в текущем контексте

Тогда, если я изменю это на:

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

Я получаю сообщение об ошибке:

Не подлежащий вызову член «System.Configuration.ConfigurationManager.ConnectionStrings» не может использоваться как метод.

Почему это так и как я могу подключиться к базе данных SQL Server с помощью C #?

Ответы [ 3 ]

11 голосов
/ 21 августа 2011

Попробуйте так:

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

Обратите внимание на [] вместо (), что используется для доступа к элементу массива в C #.Также обратите внимание на использование вызова свойства .ConnectionString, поскольку конструктор SqlConnection ожидает строку.

7 голосов
/ 21 августа 2011

Измените последнюю пару скобок на квадратные скобки.В C # круглые скобки используются в вызовах методов, независимо от того, используются ли квадратные скобки для доступа к членам внутри коллекции (или около того).

Кроме того, используйте предложение using, чтобы гарантировать, что соединение всегда закрыто ираспоряжаться, когда вы выходите за рамки:

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

Читайте об этом здесь: http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.80).aspx

2 голосов
/ 21 августа 2011

В C # вы читаете коллекции, используя синтаксис в квадратных скобках:

например.

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

string secondString = strings[1];

Таким образом, вы получаете доступ к коллекции конфигурации следующим образом:

ConfigurationManager.ConnectionStrings["conn"];
...