SqlConnection Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет подключение к базе данных SQL Server. Этот класс не наследуется.
public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
inherit DbConnection
type SqlConnection = class
inherit Component
interface IDbConnection
interface IDisposable
interface ICloneable
type SqlConnection = class
inherit DbConnection
interface ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
- Наследование
- Наследование
- Наследование
- Реализации
Примеры
В следующем примере создается SqlCommand и a SqlConnection. Откроется SqlConnection и задано значение Connection для SqlCommandпараметра . Затем в примере вызывается ExecuteNonQuery. Для этого ExecuteNonQuery передается sqlConnection и строка запроса, которая является инструкцией INSERT Transact-SQL. Подключение закрывается автоматически при выходе кода из блока using.
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
End Sub
Комментарии
Объект SqlConnection представляет уникальный сеанс для источника данных SQL Server. В клиентской или серверной базе данных это эквивалентно сетевому подключению к серверу. SqlConnection используется вместе с SqlDataAdapter и SqlCommand для повышения производительности при подключении к база данных Microsoft SQL Server. Для всех сторонних продуктов SQL Server и других источников данных, поддерживаемых OLE DB, используйте OleDbConnection.
При создании экземпляра все свойства задаются для их начальных значений SqlConnection. Список этих значений см. в конструкторе SqlConnection .
Список ключевых слов в строка подключения см. в разделе ConnectionString.
SqlConnection Если область выходит из области, она не будет закрыта. Таким образом, необходимо явно закрыть подключение путем вызова Close или Disposeвызова.
Close и Dispose функционально эквивалентны. Если для пула Pooling подключений задано true значение или yesзначение базового подключения возвращается обратно в пул подключений. С другой стороны, если Pooling задано false значение или no, базовое подключение к серверу фактически закрывается.
Note
События входа в систему и выхода из системы не вызываются на сервере при выборке подключения из пула подключений и при возврате его в пул подключений, поскольку при возврате в пул подключений подключение фактически не закрывается. Дополнительные сведения см. в разделе Объединение подключений в пул в SQL Server (ADO.NET).
Чтобы убедиться, что подключения всегда закрыты, откройте подключение внутри using блока, как показано в следующем фрагменте кода. Это гарантирует, что подключение автоматически закрывается при выходе кода из блока.
Using connection As New SqlConnection(connectionString)
connection.Open()
' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Do work here; connection closed on following line.
}
Note
Чтобы развернуть высокопроизводительные приложения, необходимо использовать пул подключений. При использовании Data Provider платформы .NET для SQL Server не требуется включить пул подключений, так как поставщик управляет этим автоматически, хотя можно изменить некоторые параметры. Дополнительные сведения см. в разделе Объединение подключений в пул в SQL Server (ADO.NET).
SqlException Если метод создает методSqlCommand, SqlConnection остается открытым, если уровень серьезности равен 19 или меньше. Если уровень серьезности равен 20 или больше, сервер, как правило, закрывается SqlConnection. Однако пользователь может повторно открыть подключение и продолжить.
Приложение, создающее экземпляр объекта, может требовать от всех прямых SqlConnection и косвенных вызывающих объектов достаточно разрешений на код, задав декларативные или императивные требования к безопасности. SqlConnection создает требования к безопасности с помощью SqlClientPermission объекта. Пользователи могут убедиться, что код имеет достаточные разрешения с помощью SqlClientPermissionAttribute объекта. Пользователи и администраторы также могут использовать Caspol.exe (средство политики безопасности доступа к коду) для изменения политики безопасности на компьютере, пользователей и корпоративных уровнях. Дополнительные сведения см. в разделе "Безопасность" в .NET. Пример использования требований к безопасности см. в разделе "Безопасность доступа к коду" и ADO.NET.
Дополнительные сведения об обработке предупреждений и информационных сообщений с сервера см. в разделе "События подключения". Дополнительные сведения об ошибках и сообщениях об ошибках ядра SQL Server см. в разделе ядро СУБД События и ошибки.
Предостережение
Вы можете принудительно использовать TCP вместо общей памяти. Это можно сделать, префиксируя tcp: имя сервера в строка подключения или использовать localhost.
Конструкторы
| Имя | Описание |
|---|---|
| SqlConnection() |
Инициализирует новый экземпляр класса SqlConnection. |
| SqlConnection(String, SqlCredential) |
Инициализирует новый экземпляр SqlConnection класса с заданной строкой подключения, которая не используется |
| SqlConnection(String) |
Инициализирует новый экземпляр SqlConnection класса при указании строки, содержащей строку подключения. |
Свойства
| Имя | Описание |
|---|---|
| AccessToken |
Возвращает или задает маркер доступа для подключения. |
| CanRaiseEvents |
Возвращает значение, указывающее, может ли компонент вызвать событие. (Унаследовано от Component) |
| ClientConnectionId |
Идентификатор подключения последней попытки подключения независимо от того, выполнена ли попытка успешно или завершилась ошибкой. |
| ColumnEncryptionKeyCacheTtl |
Возвращает или задает время в реальном времени для записей ключа шифрования столбцов в кэше ключей шифрования столбца для функции Always Encrypted . Значение по умолчанию — 2 часа. 0 означает отсутствие кэширования вообще. |
| ColumnEncryptionQueryMetadataCacheEnabled |
Возвращает или задает значение, указывающее, включена ли кэширование метаданных запроса (true) или нет (false) для параметризованных запросов, выполняемых в базах данных с поддержкой Always Encrypted . Значение по умолчанию — true. |
| ColumnEncryptionTrustedMasterKeyPaths |
Позволяет задать список доверенных путей ключа для сервера базы данных. Если при обработке запроса приложения драйвер получает путь к ключу, который не находится в списке, запрос завершится ошибкой. Это свойство обеспечивает дополнительную защиту от атак безопасности, включающих скомпрометированный SQL Server предоставления поддельных путей ключей, что может привести к утечке учетных данных хранилища ключей. |
| ConnectionString |
Возвращает или задает строку, используемую для открытия базы данных SQL Server. |
| ConnectionTimeout |
Возвращает время ожидания (в секундах) при попытке установить соединение перед завершением попытки и созданием ошибки. |
| Container |
Возвращает объект IContainer , содержащий Componentобъект . (Унаследовано от Component) |
| Credential |
Возвращает или задает SqlCredential объект для этого соединения. |
| Database |
Возвращает имя текущей базы данных или базы данных, которая будет использоваться после открытия подключения. |
| DataSource |
Возвращает имя экземпляра SQL Server, к которому необходимо подключиться. |
| DbProviderFactory |
DbProviderFactory Возвращает значение для этогоDbConnection. (Унаследовано от DbConnection) |
| DesignMode |
Возвращает значение, указывающее, находится ли текущий Component режим разработки. (Унаследовано от Component) |
| Events |
Возвращает список обработчиков событий, подключенных к этому Component. (Унаследовано от Component) |
| FireInfoMessageEventOnUserErrors |
Возвращает или задает FireInfoMessageEventOnUserErrors свойство. |
| PacketSize |
Получает размер (в байтах) сетевых пакетов, используемых для взаимодействия с экземпляром SQL Server. |
| ServerVersion |
Возвращает строку, содержащую версию экземпляра SQL Server, к которому подключен клиент. |
| Site |
Возвращает или задает ISite объект Component. (Унаследовано от Component) |
| State |
Указывает состояние последней SqlConnection сетевой операции, выполняемой при подключении. |
| StatisticsEnabled |
Если задано значение |
| WorkstationId |
Возвращает строку, определяющую клиент базы данных. |
Методы
| Имя | Описание |
|---|---|
| BeginDbTransaction(IsolationLevel) |
При переопределении в производном классе запускает транзакцию базы данных. (Унаследовано от DbConnection) |
| BeginTransaction() |
Запускает транзакцию базы данных. |
| BeginTransaction(IsolationLevel, String) |
Запускает транзакцию базы данных с указанным уровнем изоляции и именем транзакции. |
| BeginTransaction(IsolationLevel) |
Запускает транзакцию базы данных с указанным уровнем изоляции. |
| BeginTransaction(String) |
Запускает транзакцию базы данных с указанным именем транзакции. |
| ChangeDatabase(String) |
Изменяет текущую базу данных для открытой SqlConnection. |
| ChangePassword(String, SqlCredential, SecureString) |
Изменяет пароль SQL Server для пользователя, указанного в объекте SqlCredential. |
| ChangePassword(String, String) |
Изменяет пароль SQL Server для пользователя, указанного в строке подключения, на указанный новый пароль. |
| ClearAllPools() |
Очищает пул соединений. |
| ClearPool(SqlConnection) |
Очищает пул соединений, связанный с указанным подключением. |
| Close() |
Закрывает подключение к базе данных. Это предпочтительный метод закрытия любого открытого подключения. |
| CreateCommand() |
Создает и возвращает объект, связанный SqlCommand с SqlConnectionобъектом. |
| CreateDbCommand() |
При переопределении в производном классе создает и возвращает DbCommand объект, связанный с текущим подключением. (Унаследовано от DbConnection) |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Dispose() |
Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов. (Унаследовано от DbConnection) |
| Dispose() |
Освобождает все ресурсы, используемые параметром Component. (Унаследовано от Component) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые DbConnection и при необходимости освобождает управляемые ресурсы. (Унаследовано от DbConnection) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые Component и при необходимости освобождает управляемые ресурсы. (Унаследовано от Component) |
| EnlistDistributedTransaction(ITransaction) |
Выполняет перечисление в указанную транзакцию в виде распределенной транзакции. |
| EnlistTransaction(Transaction) |
Выполняет перечисление в указанную транзакцию в виде распределенной транзакции. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetSchema() |
Возвращает сведения о схеме для источника данных этого SqlConnectionобъекта. Дополнительные сведения о схеме см. в разделе SQL Server коллекции схем. |
| GetSchema(String, String[]) |
Возвращает сведения о схеме для источника данных, SqlConnection используя указанную строку для имени схемы и указанный массив строк для значений ограничений. |
| GetSchema(String) |
Возвращает сведения о схеме для источника данных, SqlConnection используя указанную строку для имени схемы. |
| GetService(Type) |
Возвращает объект, представляющий службу, предоставляемую Component или ее Container. (Унаследовано от Component) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| OnStateChange(StateChangeEventArgs) |
Вызывает событие StateChange. (Унаследовано от DbConnection) |
| Open() |
Открывает подключение к базе данных с параметрами свойств, заданными параметром ConnectionString. |
| OpenAsync() |
Асинхронная версия Open(), которая открывает подключение к базе данных с параметрами, указанными в параметре ConnectionString. Этот метод вызывает виртуальный метод OpenAsync(CancellationToken) с помощью CancellationToken.None. (Унаследовано от DbConnection) |
| OpenAsync(CancellationToken) |
Асинхронная версия Open(), которая открывает подключение к базе данных с параметрами свойств, указанными в параметре ConnectionString. Маркер отмены можно использовать для запроса на то, что операция будет прекращена до истечения времени ожидания подключения. Исключения будут распространяться через возвращаемую задачу. Если время ожидания подключения истекает без успешного подключения, возвращенная задача будет помечена как неисправная с исключением. Реализация возвращает задачу, не блокируя вызывающий поток для подключений, не относящихся к пулу. |
| RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Регистрирует поставщиков хранилища ключей шифрования столбцов. |
| ResetStatistics() |
Если сбор статистики включен, все значения сбрасываются до нуля. |
| RetrieveStatistics() |
Возвращает коллекцию пар значений имен статистики в момент вызова метода. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| ToString() |
String Возвращает имя, содержащее имя , если таковое Componentимеется. Этот метод не должен быть переопределен. (Унаследовано от Component) |
События
| Имя | Описание |
|---|---|
| Disposed |
Происходит при удалении компонента вызовом Dispose() метода. (Унаследовано от Component) |
| InfoMessage |
Происходит, когда SQL Server возвращает предупреждение или информационное сообщение. |
| StateChange |
Происходит при изменении состояния подключения. |
| StateChange |
Происходит при изменении состояния подключения. (Унаследовано от DbConnection) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| ICloneable.Clone() |
Создает новый объект, который является копией текущего экземпляра. |
| IDbConnection.BeginTransaction() |
Начинает транзакцию базы данных. |
| IDbConnection.BeginTransaction() |
Начинает транзакцию базы данных. (Унаследовано от DbConnection) |
| IDbConnection.BeginTransaction(IsolationLevel) |
Начинает транзакцию базы данных с указанным IsolationLevel значением. |
| IDbConnection.BeginTransaction(IsolationLevel) |
Начинает транзакцию базы данных с указанным уровнем изоляции. (Унаследовано от DbConnection) |
| IDbConnection.CreateCommand() |
Создает и возвращает объект Command, связанный с соединением. |
| IDbConnection.CreateCommand() |
Создает и возвращает объект, связанный DbCommand с текущим подключением. (Унаследовано от DbConnection) |