SqlConnection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje připojení k databázi SQL Server. Tato třída se nemůže dědit.
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
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
type SqlConnection = class
inherit DbConnection
type SqlConnection = class
inherit Component
interface IDbConnection
interface IDisposable
interface ICloneable
type SqlConnection = class
inherit DbConnection
interface 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
- Dědičnost
- Dědičnost
- Dědičnost
- Implementuje
Příklady
Následující příklad vytvoří SqlCommand a .SqlConnection Je SqlConnection otevřen a nastaven jako Connection pro SqlCommand. Příklad pak volá ExecuteNonQuery. K tomu se předá ExecuteNonQuery SqlConnection a řetězec dotazu, který je příkazem Transact-SQL INSERT. Připojení se automaticky zavře, 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
Objekt SqlConnection představuje jedinečnou relaci pro SQL Server zdroj dat. V případě databázového systému klienta nebo serveru je ekvivalentem síťového připojení k serveru. SqlConnection se používá společně s SqlDataAdapter a SqlCommand ke zvýšení výkonu při připojování k databáze Microsoft SQL Serveru. Pro všechny produkty SQL Server třetích stran a další zdroje dat podporované ole DB použijte OleDbConnection.
Při vytváření instance SqlConnection, všechny vlastnosti jsou nastaveny na jejich počáteční hodnoty. Seznam těchto hodnot naleznete v konstruktoru SqlConnection .
Seznam klíčových slov v připojovací řetězec najdete v tématu ConnectionString.
SqlConnection Pokud je rozsah mimo rozsah, nezavře se. Proto musíte připojení explicitně zavřít voláním Close nebo Dispose.
Close a Dispose jsou funkčně ekvivalentní. Pokud je hodnota Pooling sdružování připojení nastavena na true hodnotu nebo yes, podkladové připojení se vrátí zpět do fondu připojení. Na druhou stranu, pokud Pooling je nastavena false nebo no, základní připojení k serveru je skutečně uzavřeno.
Note
Události přihlášení a odhlášení nebudou na serveru vyvolány, když se připojení načítá z fondu připojení nebo se do něj vrací, protože se připojení ve skutečnosti nezavře, když se vrátí. Další informace najdete v tématu Sdružování připojení k SQL Serveru (ADO.NET).
Pokud chcete zajistit, aby připojení byla vždy uzavř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 blok ukončí.
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.
}
Note
Pokud chcete 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 zprostředkovatel to spravuje automaticky, i když můžete upravit některá nastavení. Další informace najdete v tématu Sdružování připojení k SQL Serveru (ADO.NET).
SqlException Pokud je vygenerován metodou, která spouští SqlCommand, SqlConnection zůstane otevřen, pokud je úroveň závažnosti 19 nebo menší. Pokud je úroveň závažnosti 20 nebo vyšší, server obvykle zavře SqlConnection. Uživatel ale může znovu otevřít připojení a pokračovat.
Aplikace, která vytvoří instanci objektu SqlConnection , může vyžadovat, aby všichni přímá a nepřímí volající měli dostatečná oprávnění k kódu nastavením deklarativních nebo imperativních požadavků na zabezpečení. SqlConnection zajišťuje, aby objekt používal požadavky na SqlClientPermission zabezpečení. Uživatelé můžou pomocí objektu SqlClientPermissionAttribute ověřit, že kód má dostatečná oprávnění. Uživatelé a správci můžou také použít Caspol.exe (Nástroj zásad zabezpečení přístupu kódu) k úpravě zásad zabezpečení na úrovni počítače, uživatele a podniku. Další informace naleznete v tématu Zabezpečení v .NET. Příklad ukazující, jak používat 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 informačních zpráv ze serveru naleznete v tématu Události připojení. Další informace o chybách modulu SQL Server a chybových zprávách najdete v tématu Database Engine Události a chyby.
Caution
Místo sdílené paměti můžete vynutit tcp. Můžete to provést předponou tcp: na název serveru v připojovací řetězec nebo můžete použít localhost.
Konstruktory
| Name | Description |
|---|---|
| SqlConnection() |
Inicializuje novou instanci SqlConnection třídy. |
| SqlConnection(String, SqlCredential) |
Inicializuje novou instanci SqlConnection třídy s daným připojovacím řetězcem, který nepoužívá |
| SqlConnection(String) |
Inicializuje novou instanci SqlConnection třídy při zadání řetězce, který obsahuje připojovací řetězec. |
Vlastnosti
| Name | Description |
|---|---|
| AccessToken |
Získá nebo nastaví přístupový token pro připojení. |
| CanRaiseEvents |
Získá hodnotu určující, zda komponenta může vyvolat událost. (Zděděno od Component) |
| ClientConnectionId |
ID připojení posledního pokusu o připojení bez ohledu na to, jestli pokus proběhl úspěšně nebo selhal. |
| ColumnEncryptionKeyCacheTtl |
Získá nebo nastaví hodnoty časového to-live pro položky šifrovacího klíče sloupce v mezipaměti šifrovacích klíčů sloupce pro funkci Always Encrypted . Výchozí hodnota je 2 hodiny. 0 znamená žádné ukládání do mezipaměti. |
| ColumnEncryptionQueryMetadataCacheEnabled |
Získá nebo nastaví hodnotu, která označuje, zda je ukládání metadat dotazu do mezipaměti povoleno (true) nebo ne (false) pro parametrizované dotazy spuštěné v databázích s podporou Always Encrypted . Výchozí hodnota je true. |
| ColumnEncryptionTrustedMasterKeyPaths |
Umožňuje nastavit seznam důvěryhodných cest klíčů pro databázový server. Pokud při zpracování dotazu aplikace ovladač obdrží cestu ke klíči, která není v seznamu, dotaz se nezdaří. Tato vlastnost poskytuje dodatečnou ochranu před útoky na zabezpečení, které zahrnují ohroženou SQL Server poskytování cest k falešným klíčům, 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í databáze SQL Serveru. |
| 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 vygenerováním chyby. |
| Container |
Získá ten IContainer , který obsahuje Component. (Zděděno od Component) |
| Credential |
Získá nebo nastaví SqlCredential objekt pro toto připojení. |
| 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 SYSTÉMU SQL Server, ke které se chcete připojit. |
| DbProviderFactory |
DbProviderFactory Získá pro to DbConnection. (Zděděno od DbConnection) |
| DesignMode |
Získá hodnotu, která označuje, zda Component 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 Serveru, ke které je klient připojen. |
| Site |
Získá nebo nastaví ISite objektu Component. (Zděděno od Component) |
| State |
Označuje stav SqlConnection během poslední síťové operace prováděné s připojením. |
| StatisticsEnabled |
Pokud je tato možnost nastavená, |
| WorkstationId |
Získá řetězec, který identifikuje databázového klienta. |
Metody
| Name | Description |
|---|---|
| BeginDbTransaction(IsolationLevel) |
Při přepsání v odvozené třídě, spustí databázové transakce. (Zděděno od DbConnection) |
| BeginTransaction() |
Spustí databázovou transakci. |
| BeginTransaction(IsolationLevel, String) |
Spustí databázovou transakci se zadanou úrovní izolace a názvem transakce. |
| BeginTransaction(IsolationLevel) |
Spustí databázovou transakci se zadanou úrovní izolace. |
| BeginTransaction(String) |
Spustí databázovou transakci se zadaným názvem transakce. |
| ChangeDatabase(String) |
Změní aktuální databázi otevřeného SqlConnectionsouboru . |
| ChangePassword(String, SqlCredential, SecureString) |
Změní heslo SQL Serveru pro uživatele uvedeného v objektu SqlCredential. |
| ChangePassword(String, String) |
Změní heslo SQL Serveru pro uživatele označeného v připojovacím řetězci na zadané nové heslo. |
| 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á metoda uzavření jakéhokoli otevřeného připojení. |
| CreateCommand() |
Vytvoří a vrátí SqlCommand objekt přidružený k objektu SqlConnection. |
| 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 potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| Dispose() |
Provádí úlohy definované aplikací související s uvolněním, uvolněním nebo resetováním nespravovaných prostředků. (Zděděno od DbConnection) |
| Dispose() |
Uvolní všechny prostředky používané nástrojem Component. (Zděděno od Component) |
| Dispose(Boolean) |
Uvolní nespravované prostředky používané DbConnection a volitelně uvolní spravované prostředky. (Zděděno od DbConnection) |
| Dispose(Boolean) |
Uvolní nespravované prostředky používané Component a volitelně uvolní spravované prostředky. (Zděděno od Component) |
| EnlistDistributedTransaction(ITransaction) |
Zapsá do zadané transakce jako distribuovanou transakci. |
| EnlistTransaction(Transaction) |
Zapsá do zadané transakce jako distribuovanou transakci. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven 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 objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetSchema() |
Vrátí informace o schématu pro zdroj dat tohoto SqlConnectionobjektu . Další informace o schématu najdete v tématu SQL Server Kolekce schémat. |
| GetSchema(String, String[]) |
Vrátí informace o schématu pro zdroj dat tohoto SqlConnection pomocí zadaného řetězce pro název schématu a zadané pole řetězců pro hodnoty omezení. |
| GetSchema(String) |
Vrátí informace o schématu pro zdroj dat tohoto SqlConnection pomocí zadaného řetězce pro název schématu. |
| GetService(Type) |
Vrátí objekt, který představuje službu poskytovanou objektem Component nebo jeho Container. (Zděděno od Component) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InitializeLifetimeService() |
Zastaralé.
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| OnStateChange(StateChangeEventArgs) |
StateChange Vyvolá událost. (Zděděno od DbConnection) |
| Open() |
Otevře připojení k databázi s nastavením vlastnosti určené parametrem ConnectionString. |
| OpenAsync() |
Asynchronní verze Open(), která otevře připojení databáze s nastavením určeným ConnectionString. Tato metoda vyvolá virtuální metodu OpenAsync(CancellationToken) pomocí CancellationToken.None. (Zděděno od DbConnection) |
| OpenAsync(CancellationToken) |
Asynchronní verze Open(), která otevře připojení databáze s nastavením vlastnosti určeného parametrem ConnectionString. Token zrušení lze použít k vyžádání, aby byla operace zrušena před vypršením časového limitu připojení. Výjimky se rozšíří prostřednictvím vrácené úlohy. Pokud časový limit připojení uplyne bez úspěšného připojení, bude vrácená úloha označena jako chybná s výjimkou. Implementace vrátí úlohu bez blokování volajícího vlákna pro připojení ve fondu i bez fondu připojení. |
| RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Zaregistruje zprostředkovatele úložiště šifrovacích klíčů sloupce. |
| ResetStatistics() |
Pokud je povolené shromažďování statistik, všechny hodnoty se resetují na nulu. |
| RetrieveStatistics() |
Vrátí kolekci statistik v okamžiku, kdy je metoda volána, pár hodnot názvu. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| ToString() |
String Vrátí hodnotu obsahující název Component, pokud existuje. Tato metoda by neměla být přepsána. (Zděděno od Component) |
Událost
| Name | Description |
|---|---|
| Disposed |
Nastane, když komponenta je uvolněna voláním Dispose() metody. (Zděděno od Component) |
| InfoMessage |
Nastane, když SQL Server vrátí upozornění nebo informační zprávu. |
| StateChange |
Nastane, když se změní stav připojení. |
| StateChange |
Nastane, když se změní stav připojení. (Zděděno od DbConnection) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| ICloneable.Clone() |
Vytvoří nový objekt, který je kopií aktuální instance. |
| IDbConnection.BeginTransaction() |
Začne databázovou transakci. |
| IDbConnection.BeginTransaction() |
Začne databázovou transakci. (Zděděno od DbConnection) |
| IDbConnection.BeginTransaction(IsolationLevel) |
Začne databázovou transakci se zadanou IsolationLevel hodnotou. |
| IDbConnection.BeginTransaction(IsolationLevel) |
Zahájí transakci databáze se zadanou úrovní izolace. (Zděděno od DbConnection) |
| IDbConnection.CreateCommand() |
Vytvoří a vrátí objekt Command, který je přidružený k připojení. |
| IDbConnection.CreateCommand() |
Vytvoří a vrátí DbCommand objekt přidružený k aktuálnímu připojení. (Zděděno od DbConnection) |