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 systému 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. Otevře SqlConnection se a nastaví se jako Connection pro SqlCommand. Příklad pak volá ExecuteNonQuery. K tomu ExecuteNonQuery se předá SqlConnection a řetězec dotazu, který je příkazem Transact-SQL INSERT. Připojení se automaticky ukončí, 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 ke zdroji dat SQL Serveru. U databázového systému klient/server se jedná o ekvivalent 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ázi Microsoft SQL Serveru. Pro všechny produkty SQL Serveru třetích stran a další zdroje dat podporované OLE DB použijte OleDbConnection.
Při vytváření instance objektu SqlConnectionjsou všechny vlastnosti nastaveny na své počáteční hodnoty. Seznam těchto hodnot naleznete v konstruktoru SqlConnection .
Podívejte ConnectionString se na seznam klíčových slov v připojovacím řetězci.
Pokud přejde mimo SqlConnection rozsah, neuzavřou se. Proto musíte připojení explicitně ukončit voláním Close
nebo Dispose
.
Close
a Dispose
jsou funkčně ekvivalentní. Pokud je hodnota Pooling
sdružování připojení nastavená na true
nebo yes
, základní připojení se vrátí zpět do fondu připojení. Pokud je naopak Pooling
nastavená hodnota false
nebo no
, základní připojení k serveru se ve skutečnosti ukončí.
Poznámka
Události přihlášení a odhlášení se na serveru nevyvolá, když se připojení načte z fondu připojení nebo se do něj vrátí, protože připojení se ve skutečnosti při vrácení do fondu připojení neukončí. Další informace najdete v tématu Sdružování připojení k SQL Serveru (ADO.NET).
Pokud chcete zajistit, aby se připojení vždy zavřela, 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í při ukončení bloku kódem automaticky 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.
}
Poznámka
Pokud chcete nasadit vysoce výkonné aplikace, musíte použít sdružování připojení. Pokud používáte zprostředkovatele dat rozhraní .NET Framework pro SQL Server, nemusíte povolovat sdružování připojení, protože zprostředkovatel to spravuje automaticky, i když můžete změnit 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á vytváří instanci objektu SqlConnection , může vyžadovat, aby všichni přímí a nepřímí volající měli dostatečná oprávnění ke kódu nastavením deklarativních nebo imperativních požadavků na zabezpečení. SqlConnection vytváří požadavky na zabezpečení pomocí objektu SqlClientPermission . Uživatelé můžou ověřit, že jejich kód má dostatečná oprávnění, pomocí objektu SqlClientPermissionAttribute . Uživatelé a správci můžou také pomocí nástrojeCaspol.exe (Code Access Security Policy Tool) 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 ukazující, jak používat požadavky na zabezpečení, najdete v tématu Zabezpečení přístupu ke kódu a ADO.NET.
Další informace o zpracování upozornění a informační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 Serveru najdete v tématu Události a chyby databázového stroje.
Upozornění
Místo sdílené paměti můžete vynutit tcp. Můžete to udělat tak, že k názvu serveru v připojovacím řetězci přidáte předponu tcp: nebo můžete použít localhost.
Konstruktory
SqlConnection() |
Inicializuje novou instanci SqlConnection třídy. |
SqlConnection(String) |
Inicializuje novou instanci SqlConnection třídy při zadání řetězce, který obsahuje připojovací řetězec. |
SqlConnection(String, SqlCredential) |
Inicializuje novou instanci SqlConnection třídy dané připojovací řetězec, který nepoužívá |
Vlastnosti
AccessToken |
Získá nebo nastaví přístupový token pro připojení. |
CanCreateBatch |
Získá hodnotu, která označuje, zda tato DbConnection instance podporuje DbBatch třídu. (Zděděno od DbConnection) |
CanRaiseEvents |
Získá hodnotu označ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 byl pokus úspěšný nebo neúspěšný. |
ColumnEncryptionKeyCacheTtl |
Získá nebo nastaví hodnotu time-to-live pro položky šifrovacího klíče sloupce v mezipaměti šifrovacích klíčů pro always encrypted funkce. Výchozí hodnota je 2 hodiny. 0 znamená, že vůbec nedochází k ukládání do mezipaměti. |
ColumnEncryptionQueryMetadataCacheEnabled |
Získá nebo nastaví hodnotu, která označuje, zda ukládání metadat dotazu do mezipaměti je povoleno (true) nebo ne (false) pro parametrizované dotazy spuštěné proti databázím s povolenou funkcí Always Encrypted . Výchozí hodnotou je hodnota true. |
ColumnEncryptionTrustedMasterKeyPaths |
Umožňuje nastavit seznam cest důvěryhodných klíčů pro databázový server. Pokud ovladač během zpracování dotazu aplikace obdrží cestu ke klíči, která není v seznamu, dotaz selže. Tato vlastnost poskytuje dodatečnou ochranu před útoky na zabezpečení, které zahrnují ohrožený SQL Server poskytující falešné cesty ke 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 SYSTÉMU SQL Server. |
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í chyby. |
Container |
Získá objekt 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 SQL Serveru, ke kterému se chcete připojit. |
DbProviderFactory |
Získá pro DbProviderFactory tento DbConnection. (Zděděno od DbConnection) |
DesignMode |
Získá hodnotu, která označuje, zda je aktuálně v režimu návrhu Component . (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í SYSTÉMU SQL Server. |
ServerVersion |
Získá řetězec, který obsahuje verzi instance systému SQL Server, ke kterému je klient připojen. |
Site |
Získá nebo nastaví ISite hodnotu Component. (Zděděno od Component) |
State |
Určuje stav SqlConnection během poslední síťové operace provedené u připojení. |
StatisticsEnabled |
Pokud je tato možnost nastavená na |
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ázi transakce se zadanou úrovní izolace. |
BeginTransaction(IsolationLevel, String) |
Spustí databázi transakce se zadanou úrovní izolace a názvem transakce. |
BeginTransaction(String) |
Spustí databázi transakce 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 otevřeného objektu SqlConnection. |
ChangeDatabaseAsync(String, CancellationToken) |
Asynchronně změní aktuální databázi pro otevřené připojení. (Zděděno od DbConnection) |
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 uvedené 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() |
Ukončí připojení k databázi. Toto je upřednostňovaná metoda ukončení jakéhokoli otevřeného připojení. |
CloseAsync() |
Asynchronně ukončí připojení k databázi. (Zděděno od DbConnection) |
CreateBatch() |
Vrátí novou instanci třídy zprostředkovatele, která implementuje DbBatch třídu. (Zděděno od DbConnection) |
CreateCommand() |
Vytvoří a vrátí SqlCommand objekt přidružený k objektu SqlConnection. |
CreateDbBatch() |
Při přepsání v odvozené třídě vrátí novou instanci třídy zprostředkovatele, která implementuje DbBatch třídu. (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 potřebné k vygenerování proxy sloužící 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é nástrojem Component. (Zděděno od Component) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané DbConnection nástrojem a volitelně uvolní spravované prostředky. (Zděděno od DbConnection) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané Component nástrojem a volitelně uvolní spravované prostředky. (Zděděno od Component) |
DisposeAsync() |
Asynchronně rozdělí objekt připojení. (Zděděno od DbConnection) |
EnlistDistributedTransaction(ITransaction) |
Zadává se do zadané transakce jako distribuovaná transakce. |
EnlistTransaction(Transaction) |
Zadává se do zadané transakce jako distribuovaná transakce. |
EnlistTransaction(Transaction) |
Zalistuje v zadané transakci. (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í hashovací funkce. (Zděděno od Object) |
GetLifetimeService() |
Zastaralé.
Načte aktuální životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
GetSchema() |
Vrátí informace o schématu pro zdroj dat tohoto SqlConnection. Další informace o schématu najdete v tématu Kolekce schémat systému SQL Server. |
GetSchema() |
Vrátí informace o schématu pro zdroj dat tohoto DbConnection. (Zděděno od DbConnection) |
GetSchema(String) |
Vrátí informace o schématu pro zdroj dat tohoto SqlConnection typu pomocí zadaného řetězce pro název schématu. |
GetSchema(String) |
Vrátí informace o schématu pro zdroj dat tohoto DbConnection typu pomocí 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 tohoto SqlConnection typu pomocí zadaného řetězce pro název schématu a zadaného pole řetězců pro hodnoty omezení. |
GetSchema(String, String[]) |
Vrátí informace o schématu pro zdroj dat tohoto DbConnection typu pomocí zadaného řetězce pro název schématu a zadaného pole řetězců pro hodnoty omezení. (Zděděno od DbConnection) |
GetSchemaAsync(CancellationToken) |
Toto je asynchronní verze nástroje GetSchema().
Poskytovatelé by měli přepsat příslušnou implementací.
Volitelně |
GetSchemaAsync(String, CancellationToken) |
Toto je asynchronní verze nástroje GetSchema(String).
Poskytovatelé by měli přepsat příslušnou implementací.
Volitelně |
GetSchemaAsync(String, String[], CancellationToken) |
Toto je asynchronní verze nástroje GetSchema(String, String[]).
Poskytovatelé by měli přepsat příslušnou implementací.
Volitelně |
GetService(Type) |
Vrátí objekt, který představuje službu poskytovanou objektem Component nebo jejím Containerobjektem . (Zděděno od Component) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
InitializeLifetimeService() |
Zastaralé.
Získá životnost objektu služby, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (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ým parametrem ConnectionString. |
OpenAsync() |
Asynchronní verze nástroje Open(), která otevře připojení k databázi s nastavením určeným ConnectionStringnástrojem . 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. Pomocí tokenu zrušení je možné požádat o opuštění operace 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í, 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 bez fondu připojení. |
OpenAsync(CancellationToken) |
Toto je asynchronní verze nástroje Open(). Poskytovatelé by měli přepsat příslušnou implementací. Token zrušení je možné volitelně respektovat. Výchozí implementace vyvolá synchronní Open() volání a vrátí dokončenou úlohu. Výchozí implementace vrátí zrušený úkol, pokud již zrušený cancellationToken. Výjimky vyvolané otevřením budou sděleny prostřednictvím vrácené vlastnosti Výjimka úkolu. Nevyvolávej jiné metody a vlastnosti objektu |
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Zaregistruje zprostředkovatele úložiště šifrovacích klíčů sloupců. |
ResetStatistics() |
Pokud je shromažďování statistik povolené, všechny hodnoty se resetují na nulu. |
RetrieveStatistics() |
Vrátí kolekci statistik párů hodnot názvů v okamžiku, kdy je volána metoda. |
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
Disposed |
Nastane, když je komponenta odstraněna voláním Dispose() metody. (Zděděno od Component) |
InfoMessage |
Vyvolá se, když SQL Server vrátí upozornění nebo informační zprávu. |
StateChange |
Vyvolá se při změně stavu připojení. |
StateChange |
Nastane, když se změní stav 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í transakci databáze. (Zděděno od DbConnection) |
IDbConnection.BeginTransaction(IsolationLevel) |
Začíná databázovou transakci se zadanou IsolationLevel hodnotou. |
IDbConnection.BeginTransaction(IsolationLevel) |
Zahájí databázi transakce se zadanou úrovní izolace. (Zděděno od DbConnection) |
IDbConnection.CreateCommand() |
Vytvoří a vrátí Command objekt, který je 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) |