SqlDataAdapter 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 sadu datových příkazů a připojení k databázi, které se používají k vyplnění DataSet a aktualizaci SQL Server databáze. Tuto třídu nelze dědit.
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDataAdapter, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
type SqlDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
interface ICloneable
type SqlDataAdapter = class
inherit DbDataAdapter
interface IDataAdapter
interface IDbDataAdapter
interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDataAdapter, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
- Dědičnost
-
SqlDataAdapter
- Implementuje
Příklady
Následující příklad používá SqlCommand, SqlDataAdaptera SqlConnection k výběru záznamů z databáze a naplnění DataSet objektu vybranými řádky. Vyplněná DataSet hodnota se pak vrátí. K tomu se metodě předá inicializovaný DataSetpřipojovací řetězec a řetězec dotazu, který je příkazem Select jazyka Transact-SQL.
using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;
public class Form1 : Form
{
protected DataSet DataSet1;
protected DataGrid dataGrid1;
private static DataSet SelectRows(DataSet dataset,
string connectionString, string queryString)
{
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(
queryString, connection);
adapter.Fill(dataset);
return dataset;
}
}
}
Poznámky
Slouží SqlDataAdapterjako most mezi DataSet a SQL Server pro načítání a ukládání dat. Poskytuje SqlDataAdapter tento most mapováním Fill, které změní data v DataSet souboru tak, aby odpovídala datům ve zdroji dat, a Update, které změní data ve zdroji dat tak, aby odpovídala datům v DataSet, pomocí příslušných příkazů Jazyka Transact-SQL vůči zdroji dat. Aktualizace se provádí po řádcích. Pro každý vložený, upravený a odstraněný řádek Update určuje metoda typ změny, která byla na řádku provedena (Insert
, Update
nebo Delete
). V závislosti na typu změny Insert
se spustí šablona příkazu , Update
nebo Delete
, která rozšíří upravený řádek do zdroje dat. Když vyplní SqlDataAdapterDataSet, vytvoří potřebné tabulky a sloupce pro vrácená data, pokud ještě neexistují. Informace o primárním klíči však nejsou zahrnuty do implicitně vytvořeného schématu, pokud MissingSchemaAction vlastnost není nastavena na AddWithKeyhodnotu . Před vyplněním dat pomocí FillSchema
můžete také SqlDataAdapter vytvořit schéma DataSet, včetně informací o primárním klíči. Další informace najdete v tématu Přidání existujících omezení do datové sady.
SqlDataAdapterse používá ve spojení s SqlConnection a SqlCommand ke zvýšení výkonu při připojování k databázi SQL Server.
Poznámka
Pokud používáte SQL Server uložené procedury k úpravě nebo odstranění dat pomocí DataAdapter
, ujistěte se, že v definici uložené procedury nepoužíváte SET NOCOUNT ON. To způsobí, že počet ovlivněných řádků se vrátí na nulu, což DataAdapter
interpretuje jako konflikt souběžnosti. V takovém případě DBConcurrencyException bude vyvolán objekt .
Obsahuje SqlDataAdapterSelectCommandtaké vlastnosti , InsertCommand, DeleteCommand, UpdateCommanda TableMappings pro usnadnění načítání a aktualizace dat.
Při vytvoření instance objektu SqlDataAdapter jsou vlastnosti pro čtení a zápis nastaveny na počáteční hodnoty. Seznam těchto hodnot naleznete v konstruktoru SqlDataAdapter .
, InsertCommandDeleteCommanda UpdateCommand jsou obecné šablony, které se automaticky vyplní jednotlivými hodnotami z každého upraveného řádku prostřednictvím mechanismu parametrů.
Pro každý sloupec, který rozšíříte do zdroje dat v Update, by měl být do , UpdateCommand
nebo DeleteCommand
přidán InsertCommand
parametr . Vlastnost SourceColumn objektu DbParameter by měla být nastavena na název sloupce. Toto nastavení označuje, že hodnota parametru není nastavena ručně, ale je převzata z konkrétního sloupce v aktuálně zpracovaném řádku.
Poznámka
K InvalidOperationException chybě dojde, Fill pokud je volána metoda a tabulka obsahuje uživatelem definovaný typ, který není k dispozici v klientském počítači. Další informace najdete v tématu Typy User-Defined CLR.
Konstruktory
SqlDataAdapter() |
Inicializuje novou instanci SqlDataAdapter třídy . |
SqlDataAdapter(SqlCommand) |
Inicializuje novou instanci SqlDataAdapter třídy se zadanou SqlCommand jako SelectCommand vlastnost . |
SqlDataAdapter(String, SqlConnection) |
Inicializuje novou instanci SqlDataAdapter třídy s objektem SelectCommandSqlConnection a . |
SqlDataAdapter(String, String) |
Inicializuje novou instanci SqlDataAdapter třídy s SelectCommand a připojovací řetězec. |
Vlastnosti
DeleteCommand |
Získá nebo nastaví Transact-SQL příkaz nebo uložená procedura odstranit záznamy z datové sady. |
InsertCommand |
Získá nebo nastaví Transact-SQL příkaz nebo uložená procedura pro vložení nových záznamů do zdroje dat. |
SelectCommand |
Získá nebo nastaví Transact-SQL příkaz nebo uložená procedura slouží k výběru záznamů ve zdroji dat. |
UpdateBatchSize |
Získá nebo nastaví počet řádků, které jsou zpracovány v každém odezvě na server. |
UpdateCommand |
Získá nebo nastaví Transact-SQL příkaz nebo uložená procedura slouží k aktualizaci záznamů ve zdroji dat. |
Událost
RowUpdated |
Vyvolá se během Update(DataSet) po provedení příkazu proti zdroji dat. Pokus o aktualizaci se provede, takže se událost aktivuje. |
RowUpdating |
Vyskytuje se během Update(DataSet) před provedením příkazu proti zdroji dat. Pokus o aktualizaci se provede, takže se událost aktivuje. |
Explicitní implementace rozhraní
ICloneable.Clone() |
Popis tohoto člena najdete v tématu Clone(). |
IDbDataAdapter.DeleteCommand |
Popis tohoto člena najdete v tématu DeleteCommand. |
IDbDataAdapter.InsertCommand |
Popis tohoto člena najdete v tématu InsertCommand. |
IDbDataAdapter.SelectCommand |
Popis tohoto člena najdete v tématu SelectCommand. |
IDbDataAdapter.UpdateCommand |
Popis tohoto člena najdete v tématu UpdateCommand. |