SqlConnection.Close Méthode

Définition

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.

public:
 virtual void Close();
public:
 override void Close();
public void Close();
public override void Close();
abstract member Close : unit -> unit
override this.Close : unit -> unit
override this.Close : unit -> unit
Public Sub Close ()
Public Overrides Sub Close ()

Implémente

Exceptions

Erreur au niveau de la connexion qui s’est produite lors de l’ouverture de la connexion.

Exemples

L’exemple suivant crée un SqlConnection, l’ouvre, affiche certaines de ses propriétés. La connexion est automatiquement fermée à la fin du using bloc.

private static void OpenSqlConnection(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
        Console.WriteLine("State: {0}", connection.State);
    }
}
Private Sub OpenSqlConnection(ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()
        Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
        Console.WriteLine("State: {0}", connection.State)
    End Using
End Sub

Remarques

La Close méthode restaure toutes les transactions en attente. Il libère ensuite la connexion au pool de connexions ou ferme la connexion si le regroupement de connexions est désactivé.

Note

Les transactions en attente démarrées à l’aide de Transact-SQL ou BeginTransaction sont automatiquement restaurées lorsque la connexion est réinitialisée si le regroupement de connexions est activé. Si le regroupement de connexions est désactivé, la transaction est restaurée après SqlConnection.Close l’appel. Les transactions démarrées System.Transactions sont contrôlées par l’infrastructure System.Transactions et ne sont pas affectées par SqlConnection.Close.

Une application peut appeler Close plusieurs fois. Aucune exception n’est générée.

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

Caution

N’appelez Close pas ou Dispose sur une connexion, un DataReader ou tout autre objet managé dans la Finalize méthode de votre classe. Dans un finaliseur, vous devez uniquement libérer des 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 Collecte des ordures.

S’applique à

Voir aussi