SqlConnection Třída

Definice

představuje připojení k databázi SQL Server. Tuto třídu nelze zdědit.

public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable, IDisposable
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface IDbConnection
    interface ICloneable
    interface IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable, IDisposable
Dědičnost
SqlConnection
Dědičnost
Dědičnost
Implementuje

Příklady

Následující příklad vytvoří SqlCommand a SqlConnection . SqlConnectionJe otevřen a nastaven jako Connection pro SqlCommand . Příklad volá ExecuteNonQuery . k tomu ExecuteNonQuery je předán připojovací řetězec a řetězec dotazu, který je příkaz Transact-SQL INSERT. Připojení je ukončeno automaticky, když kód ukončí blok 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

Poznámky

SqlConnectionobjekt představuje jedinečnou relaci ke zdroji dat SQL Server. V případě databázového systému klienta nebo serveru je to ekvivalent síťového připojení k serveru. SqlConnectionse používá společně s SqlDataAdapter a SqlCommand ke zvýšení výkonu při připojování k databázi Microsoft SQL Server. pro všechny produkty SQL Server třetích stran a jiné zdroje dat podporované OLE DB použijte OleDbConnection .

Když vytvoříte instanci SqlConnection , všechny vlastnosti jsou nastaveny na jejich počáteční hodnoty. Seznam těchto hodnot naleznete v SqlConnection konstruktoru.

ConnectionStringSeznam klíčových slov v připojovacím řetězci naleznete v tématu.

Pokud se z SqlConnection oboru dopadne mimo rozsah, nebude zavřen. Proto je nutné explicitně uzavřít připojení voláním Close nebo Dispose . Close a Dispose jsou funkčně ekvivalentní. Pokud je hodnota sdružování připojení Pooling nastavená na true nebo yes , vrátí se základní připojení zpátky do fondu připojení. Na druhou stranu platí, Pooling že pokud je nastavené na false nebo no , základní připojení k serveru se ve skutečnosti zavře.

Poznámka

Události přihlášení a odhlášení nebudou na serveru vyvolány, když je připojení načteno z nebo vráceno do fondu připojení, protože připojení není ve skutečnosti při návratu do fondu připojení ukončeno. další informace najdete v tématu SQL Server sdružování připojení (ADO.NET).

Chcete-li zajistit, že jsou připojení vždy zavřena, otevřete připojení uvnitř using bloku, jak je znázorněno v následujícím fragmentu kódu. Tím zajistíte, že se připojení automaticky zavře, když kód ukončí blok.

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

Poznámka

Chcete-li nasadit vysoce výkonné aplikace, musíte použít sdružování připojení. pokud používáte Zprostředkovatel dat .NET Framework pro SQL Server, není nutné povolit sdružování připojení, protože poskytovatel toto rozhraní spravuje automaticky, i když můžete změnit některá nastavení. další informace najdete v tématu SQL Server sdružování připojení (ADO.NET).

Pokud SqlException je generovaný metodou SqlCommand , SqlConnection zůstane otevřené, když je úroveň závažnosti 19 nebo menší. Pokud je úroveň závažnosti 20 nebo vyšší, Server obvykle zavře SqlConnection . Uživatel však může připojení znovu otevřít a pokračovat.

Aplikace, která vytvoří instanci SqlConnection objektu, může vyžadovat, aby všichni přímo a nepřímí volající měli dostatečná oprávnění k kódu nastavením deklarativních nebo imperativních požadavků zabezpečení. SqlConnection zpřístupňuje požadavky na zabezpečení pomocí SqlClientPermission objektu. Uživatelé mohou ověřit, zda má kód dostatečná oprávnění, pomocí SqlClientPermissionAttribute objektu. Uživatelé a správci mohou také pomocí nástrojeCaspol.exe (zásady zabezpečení přístupu kódu) upravovat zásady zabezpečení na úrovni počítače, uživatele a podniku. Další informace najdete v tématu zabezpečení v .NET. Příklad demonstrující, jak použít požadavky na zabezpečení, najdete v tématu zabezpečení přístupu kódu a ADO.NET.

Další informace o zpracování upozornění a informativních zpráv ze serveru najdete v tématu události připojení. další informace o chybách a chybových zprávách modulu SQL Server najdete v tématu události a chyby databázového stroje.

Upozornění

Místo sdílené paměti můžete vynutit protokol TCP. To můžete provést pomocí předpony TCP: na název serveru v připojovacím řetězci nebo můžete použít localhost.

Konstruktory

SqlConnection()

Inicializuje novou instanci SqlConnection třídy.

SqlConnection(String)

Inicializuje novou instanci SqlConnection třídy v případě, že je zadán řetězec, který obsahuje připojovací řetězec.

SqlConnection(String, SqlCredential)

Inicializuje novou instanci SqlConnection třídy daným připojovacím řetězcem, který nepoužívá, Integrated Security = true a SqlCredential objekt, který obsahuje ID a heslo uživatele.

Vlastnosti

AccessToken

Získá nebo nastaví přístupový token pro připojení.

CanCreateBatch (Zděděno od DbConnection)
CanRaiseEvents

Získá hodnotu určující, zda komponenta může vyvolat událost.

(Zděděno od Component)
ClientConnectionId

ID posledního pokusu o připojení bez ohledu na to, jestli byl pokus úspěšný nebo neúspěšný.

ColumnEncryptionKeyCacheTtl

Získá nebo nastaví hodnotu TT (Time to Live) pro položky šifrovacího klíče sloupce v mezipaměti šifrovacího klíče sloupce Always Encrypted funkce. Výchozí hodnota je 2 hodiny. 0 znamená, že ukládání do mezipaměti vůbec není.

ColumnEncryptionQueryMetadataCacheEnabled

Získá nebo nastaví hodnotu, která určuje, jestli je ukládání metadat dotazů do mezipaměti https://docs.microsoft.com/sql/relational-databases/security/encryption/always-encrypted-database-engine povolené (true) nebo ne (false) pro parametrizované dotazy spuštěné Always Encrypted databázích. Výchozí hodnotou je hodnota true.

ColumnEncryptionTrustedMasterKeyPaths

Umožňuje nastavit seznam cest k důvěryhodným klíčům pro databázový server. Pokud ovladač při zpracování dotazu aplikace obdrží cestu ke klíči, která není v seznamu, dotaz selže. Tato vlastnost poskytuje další ochranu proti útokům na zabezpečení, které zahrnují SQL Server a poskytování falešných klíčových cest, což může vést k úniku přihlašovacích údajů úložiště klíčů.

ConnectionString

Získá nebo nastaví řetězec použitý k otevření SQL Server databáze.

ConnectionTimeout

Získá čas čekání (v sekundách) při pokusu o navázání připojení před ukončením pokusu a generováním chyby.

Container

Získá IContainer , který obsahuje Component .

(Zděděno od Component)
Credential

Získá nebo nastaví SqlCredential objekt pro toto připojení.

Credentials
Database

Získá název aktuální databáze nebo databáze, která se má použít po otevření připojení.

DataSource

Získá název instance objektu SQL Server ke které se chcete připojit.

DbProviderFactory

Získá DbProviderFactory DbConnection .

(Zděděno od DbConnection)
DesignMode

Získá hodnotu, která určuje, Component zda je aktuálně v režimu návrhu.

(Zděděno od Component)
Events

Získá seznam obslužných rutin událostí, které jsou připojeny k tomuto Component .

(Zděděno od Component)
FireInfoMessageEventOnUserErrors

Získá nebo nastaví FireInfoMessageEventOnUserErrors vlastnost.

PacketSize

Získá velikost (v bajtech) síťových paketů používaných ke komunikaci s instancí SQL Server.

ServerVersion

Získá řetězec, který obsahuje verzi instance SQL Server ke kterému je klient připojen.

Site

Získá nebo nastaví ISite . Component

(Zděděno od Component)
State

Určuje stav operace SqlConnection během poslední síťové operace provedené s připojením.

StatisticsEnabled

Při nastavení true na hodnotu povolí shromažďování statistik pro aktuální připojení.

WorkstationId

Získá řetězec, který identifikuje klienta databáze.

Metody

BeginDbTransaction(IsolationLevel)

Při přepsání v odvozené třídě spustí databázovou transakci.

(Zděděno od DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

Asynchronně spustí databázovou transakci.

(Zděděno od DbConnection)
BeginTransaction()

Spustí transakci databáze.

BeginTransaction(IsolationLevel)

Spustí databázovou transakci se zadanou úrovní izolace.

BeginTransaction(IsolationLevel, String)

Spustí databázovou transakci se zadanou úrovní izolace a názvem transakce.

BeginTransaction(String)

Spustí databázovou transakci se zadaným názvem transakce.

BeginTransactionAsync(CancellationToken)

Asynchronně zahájí databázovou transakci.

(Zděděno od DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

Asynchronně zahájí databázovou transakci.

(Zděděno od DbConnection)
ChangeDatabase(String)

Změní aktuální databázi na otevřený SqlConnection .

ChangeDatabaseAsync(String, CancellationToken)

Asynchronně změní aktuální databázi otevřeného připojení.

(Zděděno od DbConnection)
ChangePassword(String, SqlCredential, SecureString)

Změní SQL Server heslo uživatele uvedeného v SqlCredential objektu .

ChangePassword(String, String)

změní SQL Server heslo uživatele uvedeného v připojovacím řetězci k dodanému novému heslu.

ClearAllPools()

Vyprázdní fond připojení.

ClearPool(SqlConnection)

Vyprázdní fond připojení přidružený k zadanému připojení.

Close()

Zavře připojení k databázi. Toto je upřednostňovaný způsob ukončení jakéhokoli otevřeného připojení.

CloseAsync()

Asynchronně uzavře připojení k databázi.

(Zděděno od DbConnection)
CreateBatch() (Zděděno od DbConnection)
CreateCommand()

Vytvoří a vrátí SqlCommand objekt přidružený k objektu SqlConnection .

CreateDbBatch() (Zděděno od DbConnection)
CreateDbCommand()

Při přepsání v odvozené třídě vytvoří a vrátí DbCommand objekt přidružený k aktuálnímu připojení.

(Zděděno od DbConnection)
CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace požadované pro vygenerování proxy serveru, který se používá ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Dispose()

Provede aplikací definované úlohy spojené s uvolněním nebo resetováním nespravovaných prostředků.

(Zděděno od DbConnection)
Dispose()

Uvolní všechny prostředky používané v Component .

(Zděděno od Component)
Dispose(Boolean)

Uvolní nespravované prostředky používané DbConnection a volitelně uvolňuje spravované prostředky.

(Zděděno od DbConnection)
Dispose(Boolean)

Uvolní nespravované prostředky používané objektem a Component volitelně uvolní spravované prostředky.

(Zděděno od Component)
DisposeAsync()

Asynchronně vynutí objekt připojení.

(Zděděno od DbConnection)
EnlistDistributedTransaction(ITransaction)

Zařazení v zadané transakci jako distribuovaná transakce.

EnlistTransaction(Transaction)

Zařadí v zadané transakci jako distribuovanou transakci.

EnlistTransaction(Transaction)

Zařadí do zadané transakce.

(Zděděno od DbConnection)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte aktuální objekt služby životnosti, který řídí zásady životního cyklu pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetSchema()

Vrátí informace o schématu pro zdroj dat SqlConnection . další informace o schématu najdete v tématu SQL Server kolekcí schémat.

GetSchema()

Vrátí informace o schématu pro zdroj dat DbConnection .

(Zděděno od DbConnection)
GetSchema(String)

Vrátí informace o schématu pro zdroj dat s SqlConnection použitím zadaného řetězce pro název schématu.

GetSchema(String)

Vrátí informace o schématu pro zdroj dat s DbConnection použitím zadaného řetězce pro název schématu.

(Zděděno od DbConnection)
GetSchema(String, String[])

Vrátí informace o schématu pro zdroj dat s SqlConnection použitím zadaného řetězce pro název schématu a zadaného pole řetězce pro hodnoty omezení.

GetSchema(String, String[])

Vrátí informace o schématu pro zdroj dat s DbConnection použitím zadaného řetězce pro název schématu a zadaného pole řetězce pro hodnoty omezení.

(Zděděno od DbConnection)
GetSchemaAsync(CancellationToken)

Toto je asynchronní verze GetSchema() . Poskytovatelé by měli přepsat příslušnou implementací. cancellationTokenMůže být volitelně akceptovatelné. Výchozí implementace vyvolá synchronní GetSchema() volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušenou úlohu, pokud byla předána již zrušena cancellationToken . Výjimky vyvolané nástrojem GetSchema() budou sděleny přes vrácenou vlastnost Exception úlohy.

(Zděděno od DbConnection)
GetSchemaAsync(String, CancellationToken)

Toto je asynchronní verze GetSchema(String) . Poskytovatelé by měli přepsat příslušnou implementací. cancellationTokenMůže být volitelně akceptovatelné. Výchozí implementace vyvolá synchronní GetSchema(String) volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušenou úlohu, pokud byla předána již zrušena cancellationToken . Výjimky vyvolané nástrojem GetSchema(String) budou sděleny přes vrácenou vlastnost Exception úlohy.

(Zděděno od DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

Toto je asynchronní verze GetSchema(String, String[]) . Poskytovatelé by měli přepsat příslušnou implementací. cancellationTokenMůže být volitelně akceptovatelné. Výchozí implementace vyvolá synchronní GetSchema(String, String[]) volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušenou úlohu, pokud byla předána již zrušena cancellationToken . Výjimky vyvolané nástrojem GetSchema(String, String[]) budou sděleny přes vrácenou vlastnost Exception úlohy.

(Zděděno od DbConnection)
GetService(Type)

Vrátí objekt, který představuje službu poskytovanou Component objektem nebo jejím Container objektem .

(Zděděno od Component)
GetType()

Získá Type aktuální instanci.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti, který řídí zásady životního cyklu pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří kopii aktuálního objektu bez podstruktury MarshalByRefObject .

(Zděděno od MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

Vyvolá StateChange událost.

(Zděděno od DbConnection)
Open()

Otevře připojení k databázi s nastavením vlastností, které určuje ConnectionString .

OpenAsync()

Asynchronní verze nástroje Open() , která otevře připojení k databázi s nastavením určeným parametrem ConnectionString . Tato metoda vyvolá virtuální metodu OpenAsync(CancellationToken) s CancellationToken. None.

(Zděděno od DbConnection)
OpenAsync(CancellationToken)

Asynchronní verze nástroje Open() , která otevře připojení k databázi s nastavením vlastností určeným parametrem ConnectionString . Token zrušení lze použít k vyžádání, že operace bude opuštěna před uplynutím časového limitu připojení. Výjimky budou šířeny přes vrácenou úlohu. Pokud časový limit připojení uplyne bez úspěšného připojení, vrácená úloha se označí jako chybná s výjimkou. Implementace vrátí úlohu bez blokování volajícího vlákna pro připojení ve fondu i nesdružovaná připojení.

OpenAsync(CancellationToken)

Toto je asynchronní verze Open() . Poskytovatelé by měli přepsat příslušnou implementací. Token zrušení lze volitelně akceptovat.

Výchozí implementace vyvolá synchronní Open() volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušenou úlohu, pokud byla předána již zrušená cancellationToken. Výjimky vyvolané příkazem Open budou sděleny přes vrácenou vlastnost Exception úlohy.

Nevolejte jiné metody a vlastnosti DbConnection objektu, dokud není vrácen dokončený úkol.

(Zděděno od DbConnection)
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Zaregistruje zprostředkovatele úložiště šifrovacích klíčů sloupce.

ResetStatistics()

Pokud je shromažďování statistik povoleno, resetují se všechny hodnoty na nulu.

RetrieveStatistics()

Vrátí kolekci statistik páru hodnot názvu v okamžiku volání metody.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
ToString()

Vrátí String obsahující název objektu , pokud Component je k dispozici. Tato metoda by neměla být přepsána.

(Zděděno od Component)

Události

Disposed

Vyvolá se, když je komponenta uvolněna voláním Dispose() metody .

(Zděděno od Component)
InfoMessage

vyvolá se v případě, SQL Server vrátí varovnou nebo informativní zprávu.

StateChange

Vyvolá se při změně stavu připojení.

StateChange

Vyvolá se v případě, že dojde ke změně stavu připojení.

(Zděděno od DbConnection)

Explicitní implementace rozhraní

ICloneable.Clone()

Vytváří nový objekt, který je kopií aktuální instance.

IDbConnection.BeginTransaction()

Zahájí transakci databáze.

IDbConnection.BeginTransaction()

Zahájí databázovou transakci.

(Zděděno od DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

Zahájí databázovou transakci se zadanou IsolationLevel hodnotou.

IDbConnection.BeginTransaction(IsolationLevel)

Spustí databázovou transakci se zadanou úrovní izolace.

(Zděděno od DbConnection)
IDbConnection.CreateCommand()

Vytvoří a vrátí objekt Command přidružený k připojení.

IDbConnection.CreateCommand()

Vytvoří a vrátí DbCommand objekt, který je přidružený k aktuálnímu připojení.

(Zděděno od DbConnection)

Platí pro

Viz také