SqlConnection.Close Metódus

Definíció

Bezárja a kapcsolatot az adatbázissal. Ez az előnyben részesített módszer a nyitott kapcsolatok bezárására.

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

Megvalósítás

Kivételek

A kapcsolati szintű hiba, amely a kapcsolat megnyitásakor történt.

Példák

Az alábbi példa létrehoz egy SqlConnection, megnyitja azt, megjeleníti annak néhány tulajdonságát. A kapcsolat automatikusan bezárul a using blokk végén.

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

Megjegyzések

A Close metódus visszaállítja a függőben lévő tranzakciókat. Ezután felszabadítja a kapcsolatot a kapcsolatkészlethez, vagy bezárja a kapcsolatot, ha a kapcsolatkészletezés le van tiltva.

Note

A Transact-SQL vagy BeginTransaction használatával indított függőben lévő tranzakciók automatikusan visszaállnak a kapcsolat alaphelyzetbe állításakor, ha engedélyezve van a kapcsolatkészletezés. Ha a kapcsolatkészletezés ki van kapcsolva, a tranzakció vissza lesz állítva a hívás után SqlConnection.Close . A megkezdett System.Transactions tranzakciókat az System.Transactions infrastruktúra vezérli, és azokat nem érinti.SqlConnection.Close

Egy alkalmazás több alkalommal is hívhat Close . A rendszer nem hoz létre kivételt.

Ha a SqlConnection hatókörön kívül esik, az nem lesz bezárva. Ezért explicit módon be kell zárnia a kapcsolatot a hívással Close vagy Disposea . Close és Dispose funkcionálisan egyenértékűek. Ha a kapcsolatkészletezési érték Pooling a következőre true van állítva vagy yes, a rendszer visszaadja az alapul szolgáló kapcsolatot a kapcsolatkészletnek. Másrészt, ha Pooling be van állítva false vagy no, a kiszolgálóhoz kapcsolódó mögöttes kapcsolat bezárul.

Note

A bejelentkezési és kijelentkeztetési események nem lesznek generálva a szerveren, amikor a kapcsolat kivételre vagy visszahelyezésre kerül a kapcsolatkészletből, mert a kapcsolat valójában nem záródik le, amikor visszahelyezésre kerül a kapcsolatkészletbe. További információ: SQL Server-kapcsolatkészletezés (ADO.NET).

Figyelmeztetés

Az osztály metódusában Close ne hívjon vagy ne használjon DisposeFinalize kapcsolatot, DataReadert vagy más felügyelt objektumot. A véglegesítőben csak az osztály tulajdonában lévő nem felügyelt erőforrásokat szabadíthatja fel. Ha az osztály nem rendelkezik nem felügyelt erőforrásokkal, ne foglaljon bele metódust Finalize az osztálydefinícióba. További információ: Szemétgyűjtés.

A következőre érvényes:

Lásd még