Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
ADO.NET je model přístupu k datům zabudovaný v .NET. Microsoft. Data.SqlClient implementuje tento model pro databáze kompatibilní se SQL Server a přidává specifické funkce pro SQL Server.
Vstupní stránka Microsoft. Data.SqlClient poskytuje mapu funkcí ovladačů a produkční základnu. Tento článek vysvětluje, jak ovladač zapadá do ADO.NET.
Abstrakce ADO.NET a typy SqlClientu
ADO.NET definuje abstrakce nezávislé na poskytovateli ve jmenném System.Data.Common prostoru. Microsoft. Data.SqlClient poskytuje konkrétní implementace.
| Abstrakce ADO.NET | Typ SqlClient | Purpose |
|---|---|---|
| DbConnection | SqlConnection | Otevírá logické spojení s jednou databází. |
| DbCommand | SqlCommand | Spustí SQL text nebo uloženou proceduru. |
| DbParameter | SqlParameter | Odesílá napsanou hodnotu odděleně od textu příkazu. |
| DbDataReader | SqlDataReader | Streamuje řádky výsledků ze serveru. |
| DbTransaction | SqlTransaction | Seskupuje příkazy do jedné atomické transakce. |
| DbDataAdapter | SqlDataAdapter | Vyplňuje a aktualizuje odpojené objekty DataSet a DataTable. |
| DbBatch | SqlBatch | Odesílá více příkazů v jedné dávce pro podporované cílové frameworky. |
Programujte proti abstrakcím ADO.NET, když knihovna musí podporovat více poskytovatelů databází. Používejte typy SqlClient, když aplikace cílí na SQL Server a potřebuje specifické funkce pro poskytovatele.
Přístup k připojeným datům
Připojený přístup udržuje spojení dostupné, dokud se spustí příkaz a aplikace čte jeho výsledky.
Běžný požadavek následuje tuto sekvenci:
- Vytvořte
SqlConnectionz připojovacího řetězce. - Otevřete připojení.
- Vytvořte
SqlCommanda přidejte hodnotySqlParameter. - Spusťte příkaz .
- Zpracujte skalární hodnotu, počet ovlivněných řádků nebo
SqlDataReader. - Uvolněte čtečku, příkaz a připojení.
Používejte připojený přístup pro většinu webových API, služeb, pracovníků a příkazových aplikací.
SqlDataReaderstreamuje řádky a obvykle využívá méně paměti než načítání celého výsledku do .DataSet
Pro každou jednotku práce otevřít a uvolnit SqlConnection je běžný postup. Sdružování připojení opětovně využívá podkladové fyzické připojení. Nenechávejte jedno globální spojení otevřené po celou dobu existence aplikace.
Přístup k datům bez připojení
SqlDataAdapterpřenáší data mezi SQL Server a in-memory DataSet nebo DataTable. Aplikace může připojení uzavřít během čtení nebo změny dat v paměti a poté se znovu připojit a odesílat aktualizace.
Používejte odpojený přístup, když potřebujete:
- Datová vazba na
DataSetneboDataTable. - Relace a omezení v paměti.
- Offline úpravy, které jsou později synchronizovány.
- Kompatibilita s existující aplikací postavenou na DataAdapterech.
U nových služeb orientovaných na požadavky začněte s SqlCommand a SqlDataReader, pokud nepotřebujete odpojený objektový model.
Specifické funkce pro SQL Server
Microsoft.Data.SqlClient přidává rozhraní API a chování připojení, které nejsou součástí rozhraní ADO.NET nezávislého na poskytovateli:
- Microsoft Entra autentizace a zpětné volání přístupových tokenů.
- TDS 8.0 přísné šifrování a možnosti certifikace SQL Server.
- Vždy šifrované a zabezpečené enklávy.
-
SqlBulkCopypro vysokorychlostní načítání dat. - Parametry hodnot tabulky.
- SQL Server datové typy, včetně JSON a vektorových typů.
- Konfigurovatelná logika opakovaných pokusů.
- Diagnostika, statistiky a čítače SQL Server.
- Dostupnost, skupina a možnosti připojení pro záložní přestup.
Použití těchto funkcí propojuje tento kód s Microsoft. Data.SqlClient. Pokud musí zbytek aplikace zůstat nezávislý na poskytovateli, ponechte kód specifický pro poskytovatele za hranicí přístupu.
Životnost objektu a souběžnost
Zlikvidujte spojení, příkazy, čtečky, transakce a hromadně kopírujte objekty okamžitě. Použijte await using s asynchronním kódem, pokud typ implementuje IAsyncDisposable.
SqlConnection, SqlCommand, SqlDataReader, a SqlTransaction nepodporují současné použití z více vláken. Každé souběžné operaci přiřaďte vlastní připojení a využijte sdružování připojení. Multiple Active Result Sets (MARS) umožňuje více než jednu aktivní sadu výsledků na spojení, ale nečiní objekty SqlClient bezpečnými pro vlákna.
Balíčky a jmenné prostory
Nainstalujte balíček Microsoft.Data.SqlClientNuGet a importujte obor názvů Microsoft.Data.SqlClient. Ovladač je dodáván nezávisle na .NET, takže jeho funkce, vydání a podpůrné plány se liší od běhu .NET.
System.Data.SqlClient je starší poskytovatel. Používejte Microsoft. Data.SqlClient pro nový vývoj. Pro existující aplikaci postupujte podle Migrate ze System.Data.SqlClient do Microsoft. Data.SqlClient.