Установка соединения (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).
Примечание. |
---|
В методе Finalize вашего класса нельзя вызывать методы Close или Dispose объектов Connection, DataReader или любого другого управляемого объекта. В методе завершения следует только освобождать неуправляемые ресурсы, которыми ваш класс непосредственно владеет. Если класс не владеет какими-либо неуправляемыми ресурсами, не включайте в его определение метод Finalize. Дополнительные сведения см. в разделе Сборка мусора. |
Примечание. |
---|
События входа в систему и выхода из системы не вызываются на сервере при выборке подключения из пула подключений и при возврате его в пул подключений, поскольку при возврате в пул подключений подключение фактически не закрывается. Дополнительные сведения см. в разделе Организация пулов соединений 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 также используется для создания строк соединения во время выполнения.
Примечание. |
---|
Объект 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.
Примечание. |
---|
Поставщик данных .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)