SqlConnection Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une connexion à une base de données SQL Server. Cette classe ne peut pas être héritée.
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.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
inherit Component
interface IDbConnection
interface IDisposable
interface ICloneable
type SqlConnection = class
inherit DbConnection
interface ICloneable
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
- Héritage
- Héritage
- Implémente
Exemples
L’exemple suivant crée un SqlCommand et un SqlConnection. Il SqlConnection est ouvert et défini comme pour Connection le SqlCommand. L’exemple appelle ExecuteNonQueryensuite . Pour ce faire, l'ExecuteNonQuery est passé une chaîne de requête SqlConnection et une chaîne de requête qui est une instruction INSERT Transact-SQL. La connexion est fermée automatiquement lorsque le code quitte le bloc 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
Remarques
Un objet SqlConnection représente une session unique à une source de données SQL Server. Avec un système de base de données client/serveur, il équivaut à une connexion réseau au serveur. SqlConnection est utilisé avec SqlDataAdapter et SqlCommand pour augmenter les performances lors de la connexion à un base de données Microsoft SQL Server. Pour tous les produits SQL Server tiers et d’autres sources de données prises en charge par OLE DB, utilisez OleDbConnection.
Lorsque vous créez une instance de SqlConnection, toutes les propriétés sont définies sur leurs valeurs initiales. Pour obtenir la liste de ces valeurs, consultez le SqlConnection constructeur.
Consultez ConnectionString pour obtenir la liste des mots clés d’un chaîne de connexion.
Si la SqlConnection portée est hors de portée, elle ne sera pas fermée. Par conséquent, vous devez fermer explicitement la connexion en appelant Close ou Dispose.
Close et Dispose sont fonctionnellement équivalents. Si la valeur Pooling de regroupement de connexions est définie true ou yessi la connexion sous-jacente est retournée au pool de connexions. En revanche, si Pooling elle est définie false sur ou no, la connexion sous-jacente au serveur est réellement fermée.
Note
Les événements de connexion et de déconnexion ne seront pas déclenchés sur le serveur si une connexion est récupérée depuis le pool de connexions ou qu’elle est retournée au pool, car elle n’est pas réellement fermée lorsqu’elle est retournée au pool. Pour plus d’informations, consultez Regroupement de connexions SQL Server (ADO.NET).
Pour vous assurer que les connexions sont toujours fermées, ouvrez la connexion à l’intérieur d’un using bloc, comme indiqué dans le fragment de code suivant. Cela garantit que la connexion est automatiquement fermée lorsque le code quitte le bloc.
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
Pour déployer des applications hautes performances, vous devez utiliser le regroupement de connexions. Lorsque vous utilisez .NET Framework Fournisseur de données pour SQL Server, vous n’avez pas besoin d’activer le regroupement de connexions, car le fournisseur gère cette fonctionnalité automatiquement, même si vous pouvez modifier certains paramètres. Pour plus d’informations, consultez Regroupement de connexions SQL Server (ADO.NET).
Si un SqlException est généré par la méthode exécutant un SqlCommand, il SqlConnection reste ouvert lorsque le niveau de gravité est de 19 ou moins. Lorsque le niveau de gravité est égal à 20 ou supérieur, le serveur ferme généralement le SqlConnection. Toutefois, l’utilisateur peut rouvrir la connexion et continuer.
Une application qui crée une instance de l’objet SqlConnection peut exiger que tous les appelants directs et indirects disposent d’une autorisation suffisante pour le code en définissant des exigences de sécurité déclaratives ou impératives. SqlConnection effectue des demandes de sécurité à l’aide de l’objet SqlClientPermission . Les utilisateurs peuvent vérifier que leur code dispose d’autorisations suffisantes à l’aide de l’objet SqlClientPermissionAttribute . Les utilisateurs et les administrateurs peuvent également utiliser l' Caspol.exe (Outil de stratégie de sécurité d’accès au code) pour modifier la stratégie de sécurité au niveau de l’ordinateur, de l’utilisateur et de l’entreprise. Pour plus d’informations, consultez Sécurité dans .NET. Pour obtenir un exemple illustrant comment utiliser les demandes de sécurité, consultez Sécurité d’accès au code et ADO.NET.
Pour plus d’informations sur la gestion des messages d’avertissement et d’information du serveur, consultez Événements de connexion. Pour plus d’informations sur SQL Server erreurs et les messages d’erreur du moteur, consultez Moteur de base de données Événements et erreurs.
Caution
Vous pouvez forcer TCP au lieu de la mémoire partagée. Pour ce faire, vous pouvez préfixer tcp : sur le nom du serveur dans le chaîne de connexion ou vous pouvez utiliser localhost.
Constructeurs
| Nom | Description |
|---|---|
| SqlConnection() |
Initialise une nouvelle instance de la classe SqlConnection. |
| SqlConnection(String, SqlCredential) |
Initialise une nouvelle instance de la SqlConnection classe en fonction d’une chaîne de connexion, qui n’utilise |
| SqlConnection(String) |
Initialise une nouvelle instance de la SqlConnection classe en fonction d’une chaîne qui contient la chaîne de connexion. |
Propriétés
| Nom | Description |
|---|---|
| AccessToken |
Obtient ou définit le jeton d’accès pour la connexion. |
| CanRaiseEvents |
Obtient une valeur indiquant si le composant peut déclencher un événement. (Hérité de Component) |
| ClientConnectionId |
ID de connexion de la tentative de connexion la plus récente, que la tentative ait réussi ou échoué. |
| ColumnEncryptionKeyCacheTtl |
Obtient ou définit la durée de vie des entrées de clé de chiffrement de colonne dans le cache de clé de chiffrement de colonne pour la fonctionnalité Always Encrypted . La valeur par défaut est de 2 heures. 0 signifie qu’aucune mise en cache n’est du tout. |
| ColumnEncryptionQueryMetadataCacheEnabled |
Obtient ou définit une valeur qui indique si la mise en cache des métadonnées de requête est activée (true) ou non (false) pour les requêtes paramétrables exécutées sur des bases de données activées par Always Encrypted . La valeur par défaut est true. |
| ColumnEncryptionTrustedMasterKeyPaths |
Vous permet de définir une liste de chemins d’accès de clés approuvés pour un serveur de bases de données. Si lors du traitement d’une requête d’application, le pilote reçoit un chemin de clé qui n’est pas dans la liste, la requête échoue. Cette propriété offre une protection supplémentaire contre les attaques de sécurité qui impliquent une SQL Server compromise fournissant des chemins de clés factices, ce qui peut entraîner la fuite des informations d’identification du magasin de clés. |
| ConnectionString |
Obtient ou définit la chaîne utilisée pour ouvrir une base de données SQL Server. |
| ConnectionTimeout |
Obtient le délai d’attente (en secondes) lors de la tentative d’établissement d’une connexion avant de terminer la tentative et de générer une erreur. |
| Container |
Obtient le IContainer fichier qui contient le Component. (Hérité de Component) |
| Credential |
Obtient ou définit l’objet SqlCredential de cette connexion. |
| Database |
Obtient le nom de la base de données active ou de la base de données à utiliser après l’ouverture d’une connexion. |
| DataSource |
Obtient le nom de l’instance de SQL Server à laquelle se connecter. |
| DbProviderFactory |
Obtient la DbProviderFactory valeur de ce DbConnection. (Hérité de DbConnection) |
| DesignMode |
Obtient une valeur qui indique si la Component valeur est actuellement en mode création. (Hérité de Component) |
| Events |
Obtient la liste des gestionnaires d’événements qui sont attachés à ce Component. (Hérité de Component) |
| FireInfoMessageEventOnUserErrors |
Obtient ou définit la FireInfoMessageEventOnUserErrors propriété. |
| PacketSize |
Obtient la taille (en octets) des paquets réseau utilisés pour communiquer avec une instance de SQL Server. |
| ServerVersion |
Obtient une chaîne qui contient la version de l’instance de SQL Server à laquelle le client est connecté. |
| Site |
Obtient ou définit le ISite de Component. (Hérité de Component) |
| State |
Indique l’état de SqlConnection l’opération réseau la plus récente effectuée sur la connexion. |
| StatisticsEnabled |
Lorsque la valeur est définie |
| WorkstationId |
Obtient une chaîne qui identifie le client de base de données. |
Méthodes
| Nom | Description |
|---|---|
| BeginDbTransaction(IsolationLevel) |
En cas de substitution dans une classe dérivée, démarre une transaction de base de données. (Hérité de DbConnection) |
| BeginTransaction() |
Démarre une transaction de base de données. |
| BeginTransaction(IsolationLevel, String) |
Démarre une transaction de base de données avec le niveau d’isolation et le nom de transaction spécifiés. |
| BeginTransaction(IsolationLevel) |
Démarre une transaction de base de données avec le niveau d’isolation spécifié. |
| BeginTransaction(String) |
Démarre une transaction de base de données avec le nom de transaction spécifié. |
| ChangeDatabase(String) |
Modifie la base de données active pour une base de données ouverte SqlConnection. |
| ChangePassword(String, SqlCredential, SecureString) |
Modifie le mot de passe SQL Server de l’utilisateur indiqué dans l’objet SqlCredential. |
| ChangePassword(String, String) |
Modifie le mot de passe SQL Server de l’utilisateur indiqué dans la chaîne de connexion par le nouveau mot de passe spécifié. |
| ClearAllPools() |
Vide le pool de connexions. |
| ClearPool(SqlConnection) |
Vide le pool de connexions associé à la connexion spécifiée. |
| Close() |
Ferme la connexion à la base de données. Il s’agit de la méthode préférée de fermeture d’une connexion ouverte. |
| CreateCommand() |
Crée et retourne un SqlCommand objet associé au SqlConnection. |
| CreateDbCommand() |
En cas de substitution dans une classe dérivée, crée et retourne un DbCommand objet associé à la connexion actuelle. (Hérité de DbConnection) |
| CreateObjRef(Type) |
Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
| Dispose() |
Libère toutes les ressources utilisées par le Component. (Hérité de Component) |
| Dispose(Boolean) |
Libère les ressources non managées utilisées par les Component ressources gérées et libère éventuellement les ressources managées. (Hérité de Component) |
| EnlistDistributedTransaction(ITransaction) |
Inscrit dans la transaction spécifiée en tant que transaction distribuée. |
| EnlistTransaction(Transaction) |
Inscrit dans la transaction spécifiée en tant que transaction distribuée. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetLifetimeService() |
Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| GetSchema() |
Retourne des informations de schéma pour la source de données de ce SqlConnection. Pour plus d’informations sur le schéma, consultez SQL Server Collections de schémas. |
| GetSchema(String, String[]) |
Retourne des informations de schéma pour la source de données de cette SqlConnection méthode à l’aide de la chaîne spécifiée pour le nom du schéma et du tableau de chaînes spécifié pour les valeurs de restriction. |
| GetSchema(String) |
Retourne des informations de schéma pour la source de données de cette SqlConnection méthode à l’aide de la chaîne spécifiée pour le nom du schéma. |
| GetService(Type) |
Retourne un objet qui représente un service fourni par le Component ou par son Container. (Hérité de Component) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| InitializeLifetimeService() |
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| MemberwiseClone(Boolean) |
Crée une copie superficielle de l’objet actuel MarshalByRefObject . (Hérité de MarshalByRefObject) |
| OnStateChange(StateChangeEventArgs) |
Déclenche l’événement StateChange. (Hérité de DbConnection) |
| Open() |
Ouvre une connexion de base de données avec les paramètres de propriété spécifiés par le ConnectionString. |
| OpenAsync() |
Version asynchrone de , qui ouvre une connexion de base de Open()données avec les paramètres spécifiés par le ConnectionString. Cette méthode appelle la méthode OpenAsync(CancellationToken) virtuelle avec CancellationToken.None. (Hérité de DbConnection) |
| OpenAsync(CancellationToken) |
Version asynchrone de , qui ouvre une connexion de base de données avec les paramètres de Open()propriété spécifiés par le ConnectionString. Le jeton d’annulation peut être utilisé pour demander que l’opération soit abandonnée avant l’expiration du délai d’expiration de la connexion. Les exceptions sont propagées via la tâche retournée. Si le délai d’expiration de la connexion s’écoule sans se connecter correctement, la tâche retournée est marquée comme étant défectueuse avec une exception. L’implémentation retourne une tâche sans bloquer le thread appelant pour les connexions mises en pool et non mises en pool. |
| RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Inscrit les fournisseurs de magasins de clés de chiffrement de colonne. |
| ResetStatistics() |
Si la collecte des statistiques est activée, toutes les valeurs sont réinitialisées à zéro. |
| RetrieveStatistics() |
Retourne une collection de paires de valeurs de nom de statistiques au moment où la méthode est appelée. |
| ToString() |
Retourne un String nom contenant le nom du Component, le cas échéant. Cette méthode ne doit pas être remplacée. (Hérité de Component) |
Événements
| Nom | Description |
|---|---|
| Disposed |
Se produit lorsque le composant est supprimé par un appel à la Dispose() méthode. (Hérité de Component) |
| InfoMessage |
Se produit lorsque SQL Server retourne un message d’avertissement ou d’information. |
| StateChange |
Se produit lorsque l’état de la connexion change. |
| StateChange |
Se produit lorsque l’état de la connexion change. (Hérité de DbConnection) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| ICloneable.Clone() |
Crée un objet qui est une copie de l’instance actuelle. |
| IDbConnection.BeginTransaction() |
Commence une transaction de base de données. |
| IDbConnection.BeginTransaction() |
Commence une transaction de base de données. (Hérité de DbConnection) |
| IDbConnection.BeginTransaction(IsolationLevel) |
Commence une transaction de base de données avec la valeur spécifiée IsolationLevel . |
| IDbConnection.BeginTransaction(IsolationLevel) |
Commence une transaction de base de données avec le niveau d’isolation spécifié. (Hérité de DbConnection) |
| IDbConnection.CreateCommand() |
Crée et retourne un objet Command associé à la connexion. |
| IDbConnection.CreateCommand() |
Crée et retourne un DbCommand objet associé à la connexion actuelle. (Hérité de DbConnection) |