SqlConnection.Close Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.