Établissement de la connexion

Pour vous connecter à Microsoft SQL Server, utilisez l'objet SqlConnection du fournisseur de données .NET Framework pour SQL Server. Pour vous connecter à une source de données OLE DB, utilisez l'objet OleDbConnection du fournisseur de données .NET Framework pour OLE DB. Pour vous connecter à une source de données ODBC, utilisez l'objet OdbcConnection du fournisseur de données .NET Framework pour ODBC. Pour vous connecter à une source de données Oracle, utilisez l'objet OracleConnection du fournisseur de données .NET Framework pour Oracle. Pour stocker et extraire des chaînes de connexion en toute sécurité, consultez Protection des informations de connexion.

Fermeture de connexions

Nous vous recommandons de toujours fermer la connexion lorsque vous avez fini de l'utiliser, de façon à ce qu'elle puisse être retournée au pool. Le bloc Using dans Visual Basic ou C# supprime automatiquement la connexion lorsque le code quitte le bloc, même dans le cas d'une exception non traitée. Pour plus d’informations, consultez using, instruction et Using, instruction.

Vous pouvez également utiliser la méthode Close ou Dispose de l'objet de connexion pour le fournisseur que vous utilisez. Les connexions qui ne sont pas explicitement fermées risquent de ne pas être ajoutées ni retournées au pool. Par exemple, une connexion devenue hors de portée mais qui n'a pas été explicitement fermée sera retournée au pool de connexion seulement si la taille maximale de celui-ci a été atteinte et si la connexion est toujours valide. Pour plus d’informations, consultez Mise en pool de connexions OLE DB, ODBC et Oracle.

Notes

N'appelez pas Close ni Dispose sur un objet managé de type Connexion, DataReader ou autre dans la méthode Finalize de votre classe. Dans un finaliseur, libérez seulement les ressources non managées que votre classe possède directement. Si votre classe ne possède pas de ressource non managée, n'incluez pas une méthode Finalize dans la définition de classe. Pour plus d’informations, consultez Nettoyage de la mémoire.

Notes

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).

Connexion à SQL Server

Le fournisseur de données .NET Framework pour SQL Server prend en charge un format de chaîne de connexion similaire à celui de la chaîne de connexion OLE DB (ADO). Pour obtenir les noms et les valeurs de format de chaîne valides, voir la propriété ConnectionString de l'objet SqlConnection. Vous pouvez également utiliser la classe SqlConnectionStringBuilder pour créer des chaînes de connexion valides du point de vue de la syntaxe au moment de l'exécution. Pour plus d’informations, consultez Builders de chaînes de connexion.

L'exemple de code suivant illustre la création et l'ouverture d'une connexion à une base de données SQL Server.

' 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.  
}  

Sécurité intégrée et ASP.NET

La sécurité intégrée SQL Server (également appelée « connexions approuvées ») fournit une protection lors de la connexion à SQL Server car elle n'expose pas d'ID utilisateur et de mot de passe dans la chaîne de connexion, et elle est la méthode recommandée pour l'authentification d'une connexion. La sécurité intégrée utilise l'identité de sécurité active, ou jeton, du processus en cours d'exécution. Dans les applications bureautiques, il s'agit généralement de l'identité de l'utilisateur actuellement connecté.

Dans les applications ASP.NET, l'identité de sécurité peut être définie à l'aide d'une option parmi plusieurs options différentes. Pour mieux comprendre l'identité de sécurité qu'une application ASP.NET utilise lorsqu'elle se connecte à SQL Server, consultez Emprunt d’identité ASP.NET, Authentification ASP.NET et Procédure : Accéder à SQL Server à l'aide de la sécurité intégrée de Windows.

Connexion à une source de données OLE DB

Le fournisseur de données .NET Framework pour OLE DB fournit la connectivité aux sources de données exposées en utilisant OLE DB (via SQLOLEDB, le fournisseur de données DB pour SQL), avec l’objet OleDbConnection.

Pour le fournisseur de données .NET Framework pour OLE DB, le format de chaîne de connexion est identique à celui utilisé dans ADO, avec les exceptions suivantes :

  • Le mot clé Provider est obligatoire.

  • Les mots clés URL, Remote Provider et Remote Server ne sont pas pris en charge.

Pour plus d'informations sur les chaînes de connexion OLE DB, voir la rubrique ConnectionString. Vous pouvez également utiliser OleDbConnectionStringBuilder pour créer des chaînes de connexion au moment de l'exécution.

Notes

L’objet OleDbConnection ne prend pas en charge la définition ou l’extraction de propriétés dynamiques spécifiques à un fournisseur OLE DB. Seules les propriétés pouvant être passées dans la chaîne de connexion du fournisseur OLE DB sont prises en charge.

L'exemple de code suivant illustre la création et l'ouverture d'une connexion à une source de données 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.  
}  

Vous pouvez fournir des informations de connexion pour une OleDbConnection dans un fichier UDL (Universal Data Link), mais il est recommandé d’éviter cela. Les fichiers UDL n'étant pas chiffrés, ils exposent les informations de chaîne de connexion en texte brut. Comme un fichier UDL est une ressource basée sur un fichier externe pour votre application, il n'est pas possible de le sécuriser à l'aide du .NET Framework.

Connexion à une source de données ODBC

Le fournisseur de données .NET Framework pour ODBC fournit la connectivité aux sources de données exposées en utilisant ODBC avec l’objet OdbcConnection.

Pour le fournisseur de données .NET Framework pour ODBC, le format de la chaîne de connexion est conçu pour être aussi proche que possible du format de la chaîne de connexion ODBC. Vous pouvez également fournir un nom de source de données ODBC (DSN). Pour plus d’informations sur OdbcConnection, consultez OdbcConnection.

L'exemple de code suivant illustre la création et l'ouverture d'une connexion à une source de données 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.  
}  

Connexion à une source de données Oracle

Le fournisseur de données .NET Framework pour Oracle fournit la connectivité aux sources de données Oracle avec l’objet OracleConnection.

Pour le fournisseur de données .NET Framework pour Oracle, le format de la chaîne de connexion est conçu pour être aussi proche que possible du format de la chaîne de connexion du fournisseur de données OLE DB pour Oracle (MSDAORA). Pour plus d’informations sur OracleConnection, consultez OracleConnection.

L'exemple de code suivant illustre la création et l'ouverture d'une connexion à une source de données 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();  

Voir aussi