Поделиться через


Установка соединения (ADO.NET)

Обновлен: November 2007

Для создания соединения с Microsoft SQL Server 7.0 или более поздней версии используется объект SqlConnection поставщика данных .NET Framework для SQL Server. Для соединения с источником данных OLE DB или с базой данных Microsoft SQL Server 6.x и более ранних версий используется объект OleDbConnection поставщика данных .NET Framework для OLE DB. Для соединения с источником данных используется объект OdbcConnection поставщика данных .NET Framework для ODBC. Для соединения с источником данных Oracle используется объект OracleConnection поставщика данных .NET Framework для Oracle. Сведения о безопасном хранении и получение строк соединения см. в разделе Защита сведений о соединении (ADO.NET).

Закрытие соединений

Рекомендуется всегда закрывать соединение после использования, чтобы обеспечить его возврат в пул. Блок Using в Visual Basic или C# автоматически удаляет соединение при выходе в коде из блока даже при наличии необработанного исключения. Дополнительные сведения см. в разделах Оператор using (Справочник по C#) и Оператор Using (Visual Basic).

Также можно использовать методы Close или Dispose объекта соединения для используемого поставщика. Соединения, которые явно не закрыты, нельзя добавить или вернуть в пул. Например, соединение, которое вышло за пределы области, но явно закрыто не было, будет возвращено в пул соединений только в том случае, если был достигнут максимальный размер этого пула, а соединение еще действует. Дополнительные сведения см. в разделе Организация пулов соединений OLE DB, ODBC и Oracle (ADO.NET).

ms254507.alert_note(ru-ru,VS.90).gifПримечание.

В методе Finalize вашего класса нельзя вызывать методы Close или Dispose объектов Connection, DataReader или любого другого управляемого объекта. В методе завершения следует только освобождать неуправляемые ресурсы, которыми ваш класс непосредственно владеет. Если класс не владеет какими-либо неуправляемыми ресурсами, не включайте в его определение метод Finalize. Дополнительные сведения см. в разделе Сборка мусора.

ms254507.alert_note(ru-ru,VS.90).gifПримечание.

События входа в систему и выхода из системы не вызываются на сервере при выборке подключения из пула подключений и при возврате его в пул подключений, поскольку при возврате в пул подключений подключение фактически не закрывается. Дополнительные сведения см. в разделе Организация пулов соединений SQL Server (ADO.NET).

Соединение с SQL Server

Поставщик данных .NET Framework для SQL Server поддерживает формат строки соединения, аналогичный формату строки соединения OLE DB (ADO). Сведения о допустимых именах и значениях формата строки см. в свойстве ConnectionString объекта SqlConnection. Можно также использовать класс SqlConnectionStringBuilder для создания синтаксически правильных строк соединения во время выполнения. Дополнительные сведения см. в разделе Построители строк соединения (ADO.NET).

В следующем примере кода демонстрируется способ создания и открытия соединения с базой данных SQL Server 7.0 или более поздней версии.

' Assumes connectionString is a valid connection string.
Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Do work here.
}

Встроенная безопасность и ASP.NET

Встроенная безопасность SQL Server (именуемая также доверительными соединениями) обеспечивает защиту при соединении с SQL Server, так как не отображает идентификатор пользователя и пароль в строке соединения, поэтому является рекомендуемым методом проверки подлинности соединения. Встроенная безопасность основана на использовании текущего идентификатора безопасности, или маркера выполняемого процесса. В приложениях рабочего стола, как правило, используется идентификатор текущего, вошедшего в систему пользователя.

Идентификатор безопасности приложений ASP.NET может быть настроен на получение одного из нескольких различных параметров. Дополнительные сведения об идентификаторе безопасности, который используется в приложении ASP.NET при соединении с SQL Server, см. в разделах Олицетворение ASP.NET, Проверка подлинности ASP.NET и Практическое руководство. Получение доступа к серверу SQL Server с помощью встроенной безопасности Windows.

Соединение с источником данных OLE DB

Поставщик данных .NET Framework для OLE DB обеспечивает обмен данными с источниками данных, доступ к которым предоставляется в рамках технологии OLE DB, и с базами данных Microsoft SQL Server 6.x или предыдущих версий (используя SQLOLEDB, поставщик OLE DB для SQL Server) с помощью объекта OleDbConnection.

Формат строки соединения поставщика данных .NET Framework для OLE DB идентичен формату строки соединения, используемому в ADO, за исключением следующего.

  • Ключевое слово Provider является обязательным.

  • Ключевые слова URL, Remote Provider и Remote Server не поддерживаются.

Дополнительные сведения о строках соединения OLE DB см. в разделе ConnectionString. Построитель OleDbConnectionStringBuilder также используется для создания строк соединения во время выполнения.

ms254507.alert_note(ru-ru,VS.90).gifПримечание.

Объект OleDbConnection не поддерживает установку или получение динамических свойств, определенных для поставщика OLE DB. Поддерживаются только те свойства, которые можно передать в строке соединения поставщику OLE DB.

В следующем примере кода демонстрируется способ создания и открытия соединения с источником данных OLE DB.

' Assumes connectionString is a valid connection string.
Using connection As New OleDbConnection(connectionString)
    connection.Open()
    ' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (OleDbConnection connection = 
  new OleDbConnection(connectionString))
{
    connection.Open();
    // Do work here.
}

Отказ от использования файлов в формате UDL

Сведения о соединении OleDbConnection можно указать в UDL,-файле однако этого следует избегать. UDL-файлы не подвергаются шифрованию, и строки соединения хранятся в них в виде простого текста. Так как UDL-файл представляет собой внешний файловый ресурс для приложения, его нельзя защитить средствами .NET Framework.

Соединение с источником данных ODBC

Поставщик данных .NET Framework для ODBC обеспечивает соединение с источниками данных с помощью интерфейса ODBC, в котором используется объект OdbcConnection.

Формат строки соединения поставщика данных .NET Framework для ODBC создан с учетом настолько полного согласования с форматом строки соединения ODBC, насколько это возможно. Также можно указать имя источника данных ODBC (DSN). Дополнительные сведения об объекте OdbcConnection см. в разделе Класс OdbcConnection.

ms254507.alert_note(ru-ru,VS.90).gifПримечание.

Поставщик данных .NET Framework для ODBC не входит в состав .NET Framework 1.0. Если в случае использования платформы .NET Framework 1.0 потребуется поставщик данных .NET Framework для ODBC, то его можно загрузить с веб-узла Майкрософт. Пространством имен для загруженного поставщика данных .NET Framework для ODBC является Microsoft.Data.Odbc.

В следующем примере кода демонстрируется способ создания и открытия соединения с источником данных ODBC.

' Assumes connectionString is a valid connection string.
Using connection As New OdbcConnection(connectionString)
    connection.Open()
    ' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (OdbcConnection connection = 
  new OdbcConnection(connectionString))
{
    connection.Open();
    // Do work here.
}

Соединение с источником данных Oracle

Поставщик данных .NET Framework для Oracle обеспечивает соединение с источниками данных Oracle с помощью объекта OdbcConnection.

Формат строки соединения поставщика данных .NET Framework для Oracle создан с учетом настолько полного согласования с форматом строки соединения поставщика OLE DB для Oracle (MSDAORA), насколько это возможно. Дополнительные сведения об объекте OracleConnection см. в разделе Класс OracleConnection.

В следующем примере кода демонстрируется способ создания и открытия соединения с источником данных Oracle.

' Assumes connectionString is a valid connection string.
Using connection As New OracleConnection(connectionString)
    connection.Open()
    ' Do work here.
End Using
// Assumes connectionString is a valid connection string.
using (OracleConnection connection = 
  new OracleConnection(connectionString))
{
    connection.Open();
    // Do work here.
}
OracleConnection nwindConn = new OracleConnection("Data Source=MyOracleServer;Integrated Security=yes;");
nwindConn.Open();

См. также

Основные понятия

Организация пулов соединений OLE DB, ODBC и Oracle (ADO.NET)

Другие ресурсы

Соединение с источником данных (ADO.NET)

Строки соединения (ADO.NET)