DbDataAdapter.Fill Metoda

Definice

Vyplní nebo DataSetDataTable.

Přetížení

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Přidá nebo aktualizuje řádky v zadané oblasti v objektu DataSet tak, aby odpovídaly řádkům ve zdroji dat pomocí DataSet názvů a zdrojových tabulek, řetězce příkazů a chování příkazů.

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Přidá nebo aktualizuje řádky v zadané oblasti v objektu DataSet tak, aby odpovídaly řádkům ve zdroji DataSet dat pomocí názvů a DataTable .

Fill(DataSet, String, IDataReader, Int32, Int32)

Přidá nebo aktualizuje řádky v zadané oblasti v objektu DataSet tak, aby odpovídaly řádkům ve zdroji dat pomocí DataSetnázvů , DataTablea IDataReader .

Fill(DataSet, Int32, Int32, String)

Přidá nebo aktualizuje řádky v zadané oblasti v objektu DataSet tak, aby odpovídaly řádkům ve zdroji DataSet dat pomocí názvů a DataTable .

Fill(Int32, Int32, DataTable[])

Přidá nebo aktualizuje řádky v jednom nebo více DataTable objektech tak, aby odpovídaly řádkům ve zdroji dat počínaje zadaným záznamem a načítáním až do zadaného maximálního počtu záznamů.

Fill(DataTable)

Pomocí názvu přidá nebo aktualizuje řádky v zadané oblasti v DataSet poli tak, aby odpovídaly řádkům ve zdroji DataTable dat.

Fill(DataTable, IDataReader)

Přidá nebo aktualizuje řádky v objektu tak, DataTable aby odpovídaly řádkům ve zdroji dat pomocí zadaných DataTable názvů a IDataReader názvů.

Fill(DataSet, String)

Přidá nebo aktualizuje řádky v objektu tak, DataSet aby odpovídaly řádkům ve zdroji DataSet dat pomocí názvů a DataTable .

Fill(DataSet)

Přidá nebo aktualizuje řádky v objektu DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Přidá nebo aktualizuje řádky v objektu DataTable tak, aby odpovídaly řádkům ve zdroji dat pomocí zadaných DataTablehodnot , IDbCommand a CommandBehavior.

Fill(DataSet, Int32, Int32, String, IDbCommand, CommandBehavior)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v zadané oblasti v objektu DataSet tak, aby odpovídaly řádkům ve zdroji dat pomocí DataSet názvů a zdrojových tabulek, řetězce příkazů a chování příkazů.

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataSet * int * int * string * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String, command As IDbCommand, behavior As CommandBehavior) As Integer

Parametry

dataSet
DataSet

A DataSet pro vyplnění záznamů a v případě potřeby schématu.

startRecord
Int32

Číslo záznamu založené na nule, na které začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadáním hodnoty 0 načtěte všechny záznamy po zahájení záznamu.

srcTable
String

Název zdrojové tabulky, která se má použít pro mapování tabulek.

command
IDbCommand

Příkaz SQL SELECT použitý k načtení řádků ze zdroje dat.

behavior
CommandBehavior

Jedna z CommandBehavior hodnot.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataSet. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Výjimky

Zdrojová tabulka je neplatná.

Parametr startRecord je menší než 0.

-nebo-

Parametr maxRecords je menší než 0.

Poznámky

Hodnota maxRecords 0 získá všechny záznamy nalezené po zahájení záznamu. Pokud maxRecords je větší než počet zbývajících řádků, vrátí se pouze zbývající řádky a nevystaví se žádná chyba.

Metoda Fill načte řádky ze zdroje dat pomocí příkazu SELECT určeného přidruženou SelectCommand vlastností. Objekt připojení přidružený k příkazu SELECT musí být platný, ale nemusí být otevřený. Pokud je připojení před Fill zavolání ukončeno, otevře se, aby načetla data, a pak se zavře. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

Operace Fill pak přidá řádky do cílových DataTable objektů v objektu DataSeta vytvoří DataTable objekty, pokud ještě neexistují. Při vytváření DataTable objektů Fill operace obvykle vytváří pouze metadata názvu sloupce. Pokud je ale vlastnost nastavená MissingSchemaAction na AddWithKey, vytvoří se také příslušné primární klíče a omezení.

Pokud při DbDataAdapter naplnění DataTablesloupce narazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do vzorů DataSet "Sloupec1", "Sloupec2" a tak dále. Když se do DataSet každé sady výsledků přidá více sad výsledků, umístí se do samostatné tabulky. Další sady výsledků se pojmenují tak, že k zadanému názvu tabulky připojíte integrální hodnoty (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Pokud vaše aplikace používá názvy sloupců a tabulek, ujistěte se, že s těmito vzory vytváření názvů nedochází ke konfliktům.

Metoda Fill podporuje scénáře, ve kterých DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze podle písmen. V takových situacích Fill provede porovnání s rozlišováním velkých a malých písmen odpovídající tabulku a vytvoří novou tabulku, pokud neexistuje přesná shoda. Toto chování znázorňuje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Pokud Fill je volán a DataSet obsahuje pouze jeden DataTable , jehož název se liší pouze písmeny, aktualizuje se DataTable . V tomto scénáři porovnání nerozlišuje velká a velká písmena. Toto chování znázorňuje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Metodu Fill můžete použít vícekrát na stejné DataTable. Pokud existuje primární klíč, příchozí řádky se sloučí s odpovídajícími řádky, které již existují. Pokud neexistuje žádný primární klíč, připojí se k objektu příchozí řádky DataTable.

Pokud vrátí SelectCommand výsledky vnějšího spojení, DataAdapter hodnota nenastaví PrimaryKey hodnotu pro výslednou DataTablehodnotu . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace Fill a FillSchema pro zprostředkovatele dat rozhraní .NET Framework načte informace o schématu pouze pro první výsledek.

Poznámky pro dědice

Toto přetížení Fill(DataSet) metody je chráněno a je určeno pro použití zprostředkovatelem dat rozhraní .NET Framework.

Viz také

Platí pro

Fill(DataTable[], Int32, Int32, IDbCommand, CommandBehavior)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v zadané oblasti v objektu , DataSet aby odpovídaly řádkům ve zdroji dat pomocí DataSet názvů a DataTable .

protected:
 virtual int Fill(cli::array <System::Data::DataTable ^> ^ dataTables, int startRecord, int maxRecords, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable[] dataTables, int startRecord, int maxRecords, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable[] * int * int * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTables As DataTable(), startRecord As Integer, maxRecords As Integer, command As IDbCommand, behavior As CommandBehavior) As Integer

Parametry

dataTables
DataTable[]

Objekty DataTable , které se mají vyplnit ze zdroje dat.

startRecord
Int32

Číslo záznamu založené na nule, na které začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadáním hodnoty 0 načtěte všechny záznamy po zahájení záznamu.

command
IDbCommand

Objekt IDbCommand byl proveden k vyplnění DataTable objektů.

behavior
CommandBehavior

Jedna z CommandBehavior hodnot.

Návraty

Počet řádků přidaných nebo aktualizováných v tabulkách dat.

Výjimky

Hodnota DataSet je neplatná.

Zdrojová tabulka je neplatná.

-nebo-

Připojení je neplatné.

Připojení nebylo nalezeno.

Parametr startRecord je menší než 0.

-nebo-

Parametr maxRecords je menší než 0.

Poznámky

Hodnota maxRecords 0 získá všechny záznamy nalezené po zahájení záznamu. Pokud maxRecords je větší než počet zbývajících řádků, vrátí se pouze zbývající řádky a nevystaví se žádná chyba.

Metoda Fill načte data ze zdroje dat pomocí příkazu SELECT. Objekt IDbConnection přidružený k příkazu SELECT musí být platný, ale nemusí být otevřený. IDbConnection Pokud je volána hodnota před ukončenímFill, otevře se, aby načetla data, a pak se zavře. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

Pokud příkaz nevrací žádné řádky, nebudou do objektu DataSetpřidány žádné tabulky, ale nevyvolá se žádná výjimka.

DbDataAdapter Pokud objekt při naplnění DataTablenarazí na duplicitní sloupce , vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do vzorů DataSet "Sloupec1", "Sloupec2" a tak dále.

Když zadaný dotaz vrátí více výsledků, každá sada výsledků se umístí do samostatné tabulky. Další sady výsledků se pojmenují tak, že k zadanému názvu tabulky připojíte integrální hodnoty (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Vzhledem k tomu, že se pro dotaz, který nevrací řádky, nevytvořila žádná tabulka. Pokud byste zpracovali vložený dotaz následovaný výběrovým dotazem, tabulka vytvořená pro výběrový dotaz by měla název Tabulka, protože se jedná o první vytvořenou tabulku. Pokud vaše aplikace používá názvy sloupců a tabulek, ujistěte se, že s těmito vzory vytváření názvů nedochází ke konfliktům.

Metoda Fill podporuje scénáře, ve kterých DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze podle písmen. V takových situacích Fill provede porovnání s rozlišováním velkých a malých písmen odpovídající tabulku a vytvoří novou tabulku, pokud neexistuje přesná shoda. Toto chování znázorňuje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Pokud Fill je volán a DataSet obsahuje pouze jeden DataTable , jehož název se liší pouze písmeny, aktualizuje se DataTable . V tomto scénáři se při porovnání nerozlišují malá a velká písmena. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Pokud při naplňování tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v tabulkách dat. Zbývající část operace se přeruší.

Pokud příkaz SELECT použitý k naplnění DataTable objektů vrátí více výsledků, například dávkový příkaz SQL, mějte na paměti následující:

  • Při zpracování více výsledků z dávkového příkazu SQL platí maxRecords pouze pro první výsledek. Totéž platí pro řádky obsahující výsledky v kapitolách (Zprostředkovatel dat rozhraní .NET Framework pouze pro OLE DB). Výsledek nejvyšší úrovně je omezený , maxRecordsale přidají se všechny podřízené řádky.

  • Pokud jeden z výsledků obsahuje chybu, všechny následné výsledky se přeskočí.

Poznámka

Parametr DataSet nebude obsahovat více než počet záznamů označených parametrem maxRecords. Celá sada výsledků vygenerovaná dotazem se ale stále vrátí ze serveru.

Poznámky pro dědice

Při přepsání Fill(DataSet) v odvozené třídě nezapomeňte volat metodu základní třídy Fill(DataSet) .

Viz také

Platí pro

Fill(DataSet, String, IDataReader, Int32, Int32)

Přidá nebo aktualizuje řádky v zadané oblasti v objektu tak DataSet , aby odpovídaly řádkům ve zdroji dat pomocí DataSetnázvů , DataTablea IDataReader .

protected:
 virtual int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable, System::Data::IDataReader ^ dataReader, int startRecord, int maxRecords);
protected virtual int Fill (System.Data.DataSet dataSet, string srcTable, System.Data.IDataReader dataReader, int startRecord, int maxRecords);
override this.Fill : System.Data.DataSet * string * System.Data.IDataReader * int * int -> int
Protected Overridable Function Fill (dataSet As DataSet, srcTable As String, dataReader As IDataReader, startRecord As Integer, maxRecords As Integer) As Integer

Parametry

dataSet
DataSet

A DataSet pro vyplnění záznamů a v případě potřeby schématu.

srcTable
String

Název tabulky, která DataTable se má použít pro mapování tabulek.

dataReader
IDataReader

Název procesu IDataReader.

startRecord
Int32

Číslo záznamu od nuly, kterým začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Pokud chcete načíst všechny záznamy po počátečním záznamu, zadejte hodnotu 0.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataSet. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Výjimky

startRecord je menší než 0.

-nebo-

maxRecords je menší než 0.

Poznámky

Hodnota maxRecords 0 získá všechny záznamy nalezené po počátečním záznamu. Pokud maxRecords je větší než počet zbývajících řádků, vrátí se pouze zbývající řádky a nevystaví se žádná chyba.

Platí pro

Fill(DataSet, Int32, Int32, String)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v zadané oblasti v objektu , DataSet aby odpovídaly řádkům ve zdroji dat pomocí DataSet názvů a DataTable .

public:
 int Fill(System::Data::DataSet ^ dataSet, int startRecord, int maxRecords, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable);
override this.Fill : System.Data.DataSet * int * int * string -> int
Public Function Fill (dataSet As DataSet, startRecord As Integer, maxRecords As Integer, srcTable As String) As Integer

Parametry

dataSet
DataSet

A DataSet pro vyplnění záznamů a v případě potřeby schématu.

startRecord
Int32

Číslo záznamu od nuly, kterým začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Pokud chcete načíst všechny záznamy po počátečním záznamu, zadejte hodnotu 0.

srcTable
String

Název zdrojové tabulky, která se má použít pro mapování tabulky.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataSet. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Výjimky

Hodnota DataSet je neplatná.

Zdrojová tabulka je neplatná.

-nebo-

Připojení je neplatné.

Připojení nebylo nalezeno.

Parametr startRecord je menší než 0.

-nebo-

Parametr maxRecords je menší než 0.

Příklady

Následující příklad používá odvozenou třídu , OleDbDataAdapter, k vyplnění objektu DataSet 15 řádky počínaje řádkem 10 z tabulky Categories . V tomto příkladu se předpokládá, že jste vytvořili objekty OleDbDataAdapter a DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet,9,15,"Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, 9, 15, "Categories")
End Sub

Poznámky

Hodnota maxRecords 0 získá všechny záznamy nalezené po počátečním záznamu. Pokud maxRecords je větší než počet zbývajících řádků, vrátí se pouze zbývající řádky a nevystaví se žádná chyba.

Pokud je odpovídající příkaz select příkazem, který vrací více výsledků, Fill platí maxRecords pouze pro první výsledek.

Metoda Fill načte data ze zdroje dat pomocí příkazu SELECT. Objekt IDbConnection přidružený k příkazu SELECT musí být platný, ale nemusí být otevřený. IDbConnection Pokud je volána hodnota uzavřená předFill, otevře se pro načtení dat a pak se zavře. Pokud je připojení před Fill zavolání otevřené, zůstane otevřené.

Pokud příkaz nevrátí žádné řádky, nejsou do objektu DataSetpřidány žádné tabulky, ale není vyvolána žádná výjimka.

DbDataAdapter Pokud objekt při vyplňování DataTablenarazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umisťují DataSet se do sloupců podle vzoru "Column1", "Column2" atd.

Když zadaný dotaz vrátí více výsledků, každá sada výsledků se umístí do samostatné tabulky. Další sady výsledků se nazývají připojením integrálních hodnot k zadanému názvu tabulky (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Vzhledem k tomu, že pro dotaz, který nevrací řádky, není vytvořena žádná tabulka, pokud zpracujete vložený dotaz následovaný výběrovým dotazem, bude tabulka vytvořená pro výběrový dotaz pojmenována "Tabulka", protože se jedná o první vytvořenou tabulku. Pokud vaše aplikace používá názvy sloupců a tabulek, ujistěte se, že s těmito vzory vytváření názvů nedochází ke konfliktům.

Metoda Fill podporuje scénáře, kdy DataSet objekt obsahuje více DataTable objektů, jejichž názvy se liší pouze velikostí písmen. V takových situacích Fill nástroj provede porovnání s rozlišováním velkých a malých písmen a vyhledá odpovídající tabulku, a pokud neexistuje přesná shoda, vytvoří novou tabulku. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Pokud Fill je volána a DataSet obsahuje pouze jeden DataTable , jehož název se liší pouze velikostí písmen, DataTable aktualizuje se. V tomto scénáři se při porovnání nerozlišují malá a velká písmena. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Pokud při naplňování tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v tabulkách dat. Zbývající část operace se přeruší.

Pokud příkaz SELECT použitý k naplnění DataSet vrátí více výsledků, například dávkové příkazy SQL, mějte na paměti následující:

  • Při zpracování více výsledků z dávkového příkazu SQL platí maxRecords pouze pro první výsledek. Totéž platí pro řádky obsahující výsledky v kapitolách (Zprostředkovatel dat rozhraní .NET Framework pouze pro OLE DB). Výsledek nejvyšší úrovně je omezený , maxRecordsale přidají se všechny podřízené řádky.

  • Pokud jeden z výsledků obsahuje chybu, všechny následné výsledky se přeskočí a nepřidají se do .DataSet

Při použití následných Fill volání k aktualizaci obsahu DataSetnástroje musí být splněny dvě podmínky:

  1. Příkaz SQL by se měl shodovat DataSets příkazem, který se původně použil k naplnění .

  2. Musí existovat informace o sloupci Klíč .

Pokud jsou k dispozici informace o primárním klíči, všechny duplicitní řádky se odsouhlasí a zobrazí se pouze jednou v objektu DataTable , který odpovídá hodnotě DataSet. Informace o primárním klíči mohou být nastaveny buď prostřednictvím FillSchema, zadáním PrimaryKey vlastnosti objektu DataTablenebo nastavením MissingSchemaAction vlastnosti na AddWithKeyhodnotu .

Pokud objekt SelectCommand vrátí výsledky VNĚJŠÍHO SPOJENÍ, DataAdapter nenastaví PrimaryKey hodnotu pro výsledný DataTableobjekt . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace FillSchema pro zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Pokud chcete načíst informace o schématu pro více výsledků, použijte Fill příkaz s nastavenou MissingSchemaAction na AddWithKey.

Poznámka

Parametr DataSet nebude obsahovat více než počet záznamů označených parametrem maxRecords. Celá sada výsledků vygenerovaná dotazem se ale ze serveru stále vrací.

Poznámky pro dědice

Při přepsání Fill(DataSet) v odvozené třídě nezapomeňte volat metodu základní třídy Fill(DataSet) .

Viz také

Platí pro

Fill(Int32, Int32, DataTable[])

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v jednom nebo více DataTable objektech tak, aby odpovídaly řádkům ve zdroji dat počínaje zadaným záznamem a načtením až do zadaného maximálního počtu záznamů.

public:
 int Fill(int startRecord, int maxRecords, ... cli::array <System::Data::DataTable ^> ^ dataTables);
public int Fill (int startRecord, int maxRecords, params System.Data.DataTable[] dataTables);
override this.Fill : int * int * System.Data.DataTable[] -> int
Public Function Fill (startRecord As Integer, maxRecords As Integer, ParamArray dataTables As DataTable()) As Integer

Parametry

startRecord
Int32

Číslo záznamu od nuly, kterým začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Pokud chcete načíst všechny záznamy po počátečním záznamu, zadejte hodnotu 0.

dataTables
DataTable[]

Objekty DataTable , které se mají vyplnit ze zdroje dat.

Návraty

Počet řádků, které byly úspěšně přidány nebo aktualizovány v DataTable objektech. Tato hodnota nezahrnuje řádky ovlivněné příkazy, které nevrací řádky.

Výjimky

dataTables je null nebo prázdné pole.

startRecord je menší než 0.

-nebo-

maxRecords je menší než 0.

Poznámky

Hodnota maxRecords 0 získá všechny záznamy nalezené po počátečním záznamu. Pokud maxRecords je větší než počet zbývajících řádků, vrátí se pouze zbývající řádky a nevystaví se žádná chyba.

Metoda Fill načte řádky ze zdroje dat pomocí příkazu SELECT určeného přidruženou SelectCommand vlastností. Objekt připojení přidružený k příkazu SELECT musí být platný, ale nemusí být otevřený. Pokud je připojení před Fill zavolání ukončeno, otevře se pro načtení dat a pak se ukončí. Pokud je připojení před Fill zavolání otevřené, zůstane otevřené.

Operace Fill pak přidá řádky do cílových DataTable objektů v objektu DataSeta vytvoří DataTable objekty, pokud ještě neexistují. Při vytváření DataTable objektů Fill operace obvykle vytváří pouze metadata názvů sloupců. Pokud je ale vlastnost nastavená MissingSchemaAction na AddWithKey, vytvoří se také odpovídající primární klíče a omezení.

Pokud objekt SelectCommand vrátí výsledky VNĚJŠÍHO SPOJENÍ, DataAdapter nenastaví PrimaryKey hodnotu pro výsledný DataTableobjekt . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Pokud datový adaptér při vyplňování DataTablenarazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umisťují DataSet se do sloupců podle vzoru "Column1", "Column2" atd. Když se do DataSetpřidá více sad výsledků dotazu , každá sada výsledků dotazu se umístí do samostatné tabulky. Další sady výsledků se nazývají připojením integrálních hodnot k zadanému názvu tabulky (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Pokud vaše aplikace používá názvy sloupců a tabulek, ujistěte se, že s těmito vzory vytváření názvů nedochází ke konfliktům.

Když příkaz SELECT použitý k naplnění DataSet vrátí více výsledků, například dávkové příkazy SQL, pokud jeden z výsledků obsahuje chybu, všechny následné výsledky se přeskočí a nepřidají se do DataSet.

Metodu Fill můžete použít vícekrát na stejném DataTable. Pokud existuje primární klíč, příchozí řádky se sloučí s odpovídajícími řádky, které už existují. Pokud neexistuje žádný primární klíč, připojí se příchozí řádky k objektu DataTable.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace FillSchema pro zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Pokud chcete načíst informace o schématu pro více výsledků, použijte Fill příkaz s nastavenou MissingSchemaAction na AddWithKey.

Viz také

Platí pro

Fill(DataTable)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v zadané oblasti v objektu tak DataSet , aby odpovídaly řádkům ve zdroji dat pomocí názvu DataTable .

public:
 int Fill(System::Data::DataTable ^ dataTable);
public int Fill (System.Data.DataTable dataTable);
override this.Fill : System.Data.DataTable -> int
Public Function Fill (dataTable As DataTable) As Integer

Parametry

dataTable
DataTable

Název tabulky, která DataTable se má použít pro mapování tabulek.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataSet. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Výjimky

Zdrojová tabulka je neplatná.

Poznámky

Metoda Fill načte řádky ze zdroje dat pomocí příkazu SELECT určeného přidruženou SelectCommand vlastností. Objekt připojení přidružený k příkazu SELECT musí být platný, ale nemusí být otevřený. Pokud se připojení před Fill zavolání ukončí, otevře se za účelem načtení dat a pak se ukončí. Pokud je připojení před Fill zavolání otevřené, zůstane otevřené.

Operace Fill pak přidá řádky do cílových DataTable objektů v objektu DataSeta vytvoří DataTable objekty, pokud ještě neexistují. Při vytváření DataTable objektů Fill operace obvykle vytváří pouze metadata názvů sloupců. Pokud je ale vlastnost nastavená MissingSchemaAction na AddWithKey, vytvoří se také odpovídající primární klíče a omezení.

Pokud při DbDataAdapter vyplňování DataTablenarazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umisťují DataSet se do sloupců podle vzoru "Column1", "Column2" atd. Při přidání více sad výsledků dotazu se DataSet každá sada výsledků dotazu umístí do samostatné tabulky.

Přetížení Fill , které přijímá DataTable jako parametr, získá pouze první výsledek. Použijte přetížení Fill , které přijímá DataSet jako parametr pro získání více výsledků.

Metoda Fill podporuje scénáře, kdy DataSet objekt obsahuje více DataTable objektů, jejichž názvy se liší pouze velikostí písmen. V takových situacích Fill nástroj provede porovnání s rozlišováním velkých a malých písmen a vyhledá odpovídající tabulku, a pokud neexistuje přesná shoda, vytvoří novou tabulku. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
 dataset.Tables.Add("AAA");  
 adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
    adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Pokud Fill je volána a DataSet obsahuje pouze jeden DataTable , jehož název se liší pouze velikostí písmen, DataTable aktualizuje se. V tomto scénáři se při porovnání nerozlišují malá a velká písmena. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
 dataset.Tables.Add("aaa");  
    adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Metodu Fill můžete použít vícekrát na stejném DataTable. Pokud existuje primární klíč, příchozí řádky se sloučí s odpovídajícími řádky, které už existují. Pokud neexistuje žádný primární klíč, připojí se příchozí řádky k objektu DataTable.

Pokud objekt SelectCommand vrátí výsledky VNĚJŠÍHO SPOJENÍ, DataAdapter nenastaví PrimaryKey hodnotu pro výsledný DataTableobjekt . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace Fill a FillSchema pro zprostředkovatele dat rozhraní .NET Framework načítá informace o schématu pouze pro první výsledek.

Poznámky pro dědice

Toto přetížení Fill(DataSet) metody je chráněno a je určeno pro použití zprostředkovatelem dat rozhraní .NET Framework.

Viz také

Platí pro

Fill(DataTable, IDataReader)

Přidá nebo aktualizuje řádky v objektu tak DataTable , aby odpovídaly řádkům ve zdroji dat pomocí zadaných DataTable názvů a IDataReader .

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDataReader ^ dataReader);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDataReader dataReader);
override this.Fill : System.Data.DataTable * System.Data.IDataReader -> int
Protected Overridable Function Fill (dataTable As DataTable, dataReader As IDataReader) As Integer

Parametry

dataTable
DataTable

A DataTable pro vyplnění záznamů a v případě potřeby schématu.

dataReader
IDataReader

Název procesu IDataReader.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataTable. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Platí pro

Fill(DataSet, String)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v objektu tak DataSet , aby odpovídaly řádkům ve zdroji DataSet dat pomocí názvů a DataTable .

public:
 int Fill(System::Data::DataSet ^ dataSet, System::String ^ srcTable);
public int Fill (System.Data.DataSet dataSet, string srcTable);
override this.Fill : System.Data.DataSet * string -> int
Public Function Fill (dataSet As DataSet, srcTable As String) As Integer

Parametry

dataSet
DataSet

A DataSet pro vyplnění záznamů a v případě potřeby schématu.

srcTable
String

Název zdrojové tabulky, která se má použít pro mapování tabulky.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataSet. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Výjimky

Zdrojová tabulka je neplatná.

Příklady

Následující příklad používá odvozenou třídu , OleDbDataAdapter, k vyplnění DataSet řádků z tabulky categories. V tomto příkladu se předpokládá, že jste vytvořili objekty OleDbDataAdapter a DataSet.

public void GetRecords()
{
    // ...
    // create dataSet and adapter
    // ...
    adapter.Fill(dataSet, "Categories");
}
Public Sub GetRecords()
    ' ...
    ' create dataSet and adapter
    ' ...
    adapter.Fill(dataSet, "Categories")
End Sub

Poznámky

Metoda Fill načte data ze zdroje dat pomocí příkazu SELECT. Objekt IDbConnection přidružený k příkazu select musí být platný, ale nemusí být otevřený. IDbConnection Pokud je volána hodnota je uzavřena předFill, je otevřena pro načtení dat a poté uzavřena. Pokud je připojení před Fill zavolání otevřené, zůstane otevřené.

Pokud příkaz nevrátí žádné řádky, nebudou do objektu DataSetpřidány žádné tabulky a nebude vyvolána žádná výjimka.

DbDataAdapter Pokud objekt při vyplňování DataTablenarazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umisťují DataSet se do sloupců podle vzoru "Column1", "Column2" atd.

Když zadaný dotaz vrátí více výsledků, každá sada výsledků se umístí do samostatné tabulky. Další sady výsledků se nazývají připojením integrálních hodnot k zadanému názvu tabulky (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Vzhledem k tomu, že pro dotaz, který nevrací řádky, se nevytvořila žádná tabulka, pokud byste zpracovali vložený dotaz následovaný výběrovým dotazem, tabulka vytvořená pro výběrový dotaz by měla název "Tabulka", protože se jedná o první vytvořenou tabulku. Pokud vaše aplikace používá názvy sloupců a tabulek, ujistěte se, že s těmito vzory vytváření názvů nedochází ke konfliktům.

Metoda Fill podporuje scénáře, kdy DataSet objekt obsahuje více DataTable objektů, jejichž názvy se liší pouze velikostí písmen. V takových situacích Fill nástroj provede porovnání s rozlišováním velkých a malých písmen a vyhledá odpovídající tabulku, a pokud neexistuje přesná shoda, vytvoří novou tabulku. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
dataset.Tables.Add("AAA");  
adapter.Fill(dataset, "aaa"); // Fills "aaa", which already exists in the DataSet.  
adapter.Fill(dataset, "Aaa"); // Adds a new table called "Aaa".  

Pokud Fill je volána a DataSet obsahuje pouze jeden DataTable , jehož název se liší pouze velikostí písmen, DataTable aktualizuje se. V tomto scénáři se při porovnání nerozlišují malá a velká písmena. Toto chování ilustruje následující kód jazyka C#.

DataSet dataset = new DataSet();  
dataset.Tables.Add("aaa");  
adapter.Fill(dataset, "AAA"); // Fills table "aaa" because only one similarly named table is in the DataSet.  

Pokud při naplňování tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v tabulkách dat. Zbývající část operace se přeruší.

Pokud příkaz SELECT použitý k naplnění DataSet vrátí více výsledků, například dávkový příkaz SQL, mějte na paměti následující:

  • Pokud jeden z výsledků obsahuje chybu, všechny následné výsledky se přeskočí a nepřidají se do .DataSet

Při použití následných Fill volání k aktualizaci obsahu DataSetnástroje musí být splněny dvě podmínky:

  1. Příkaz SQL by se měl shodovat DataSets příkazem, který se původně použil k naplnění .

  2. Musí existovat informace o sloupci Klíč . Pokud jsou k dispozici informace o primárním klíči, všechny duplicitní řádky se odsouhlasí a zobrazí se pouze jednou v objektu DataTable , který odpovídá hodnotě DataSet. Informace o primárním klíči mohou být nastaveny buď prostřednictvím FillSchema, zadáním PrimaryKey vlastnosti objektu DataTablenebo nastavením MissingSchemaAction vlastnosti na AddWithKeyhodnotu .

Pokud objekt SelectCommand vrátí výsledky VNĚJŠÍHO SPOJENÍ, DataAdapter nenastaví PrimaryKey hodnotu pro výsledný DataTableobjekt . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace FillSchema pro zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Pokud chcete načíst informace o schématu pro více výsledků, použijte Fill příkaz s nastavenou MissingSchemaAction na AddWithKey.

Poznámky pro dědice

Při přepsání Fill(DataSet) v odvozené třídě nezapomeňte volat metodu základní třídy Fill(DataSet) .

Viz také

Platí pro

Fill(DataSet)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v objektu DataSet.

public:
 override int Fill(System::Data::DataSet ^ dataSet);
public override int Fill (System.Data.DataSet dataSet);
override this.Fill : System.Data.DataSet -> int
Public Overrides Function Fill (dataSet As DataSet) As Integer

Parametry

dataSet
DataSet

A DataSet pro vyplnění záznamů a v případě potřeby schématu.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataSet. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Implementuje

Poznámky

Metoda Fill načte data ze zdroje dat pomocí příkazu SELECT. Objekt IDbConnection přidružený k příkazu select musí být platný, ale nemusí být otevřený. IDbConnection Pokud je volána hodnota uzavřená předFill, otevře se pro načtení dat a pak se zavře. Pokud je připojení před Fill zavolání otevřené, zůstane otevřené.

Pokud při naplňování tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v tabulkách dat. Zbývající část operace se přeruší.

Pokud příkaz nevrátí žádné řádky, nebudou do objektu DataSetpřidány žádné tabulky a nebude vyvolána žádná výjimka.

DbDataAdapter Pokud objekt při vyplňování DataTablenarazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umisťují DataSet se do sloupců podle vzoru "Column1", "Column2" atd.

Když zadaný dotaz vrátí více výsledků, sada výsledků pro každý řádek vracející dotaz se umístí do samostatné tabulky. Další sady výsledků se nazývají připojením integrálních hodnot k zadanému názvu tabulky (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Vzhledem k tomu, že pro dotaz, který nevrací řádky, není vytvořena žádná tabulka, pokud zpracujete vložený dotaz následovaný výběrovým dotazem, bude tabulka vytvořená pro výběrový dotaz pojmenována "Tabulka", protože se jedná o první vytvořenou tabulku. Pokud vaše aplikace používá názvy sloupců a tabulek, ujistěte se, že s těmito vzory vytváření názvů nedochází ke konfliktům.

Pokud příkaz SELECT použitý k naplnění DataSet vrátí více výsledků, například dávkové příkazy SQL, pokud jeden z výsledků obsahuje chybu, všechny následné výsledky se přeskočí a nepřidají se do DataSet.

Při použití následných Fill volání k aktualizaci obsahu DataSetnástroje musí být splněny dvě podmínky:

  1. Příkaz SQL by se měl shodovat DataSets příkazem, který se původně použil k naplnění .

  2. Musí existovat informace o sloupci Klíč .

Pokud jsou k dispozici informace o primárním klíči, všechny duplicitní řádky se odsouhlasí a zobrazí se pouze jednou v objektu DataTable , který odpovídá hodnotě DataSet. Informace o primárním klíči mohou být nastaveny buď prostřednictvím FillSchema, zadáním PrimaryKey vlastnosti objektu DataTablenebo nastavením MissingSchemaAction vlastnosti na AddWithKeyhodnotu .

Pokud objekt SelectCommand vrátí výsledky VNĚJŠÍHO SPOJENÍ, DataAdapter nenastaví PrimaryKey hodnotu pro výsledný DataTableobjekt . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace FillSchema pro zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Pokud chcete načíst informace o schématu pro více výsledků, použijte Fill příkaz s nastavenou MissingSchemaAction na AddWithKey.

Viz také

Platí pro

Fill(DataTable, IDbCommand, CommandBehavior)

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

Přidá nebo aktualizuje řádky v objektu tak DataTable , aby odpovídaly řádkům ve zdroji dat pomocí zadaných DataTablehodnot , IDbCommand a CommandBehavior.

protected:
 virtual int Fill(System::Data::DataTable ^ dataTable, System::Data::IDbCommand ^ command, System::Data::CommandBehavior behavior);
protected virtual int Fill (System.Data.DataTable dataTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior);
override this.Fill : System.Data.DataTable * System.Data.IDbCommand * System.Data.CommandBehavior -> int
Protected Overridable Function Fill (dataTable As DataTable, command As IDbCommand, behavior As CommandBehavior) As Integer

Parametry

dataTable
DataTable

A DataTable pro vyplnění záznamů a v případě potřeby schématu.

command
IDbCommand

Příkaz SQL SELECT použitý k načtení řádků ze zdroje dat.

behavior
CommandBehavior

Jedna z CommandBehavior hodnot.

Návraty

Počet řádků, které byly úspěšně přidány do nebo aktualizovány v objektu DataTable. To nezahrnuje řádky ovlivněné příkazy, které nevracejí řádky.

Poznámky

Metoda Fill načte řádky ze zdroje dat pomocí příkazu SELECT určeného přidruženou SelectCommand vlastností. Objekt připojení přidružený k příkazu SELECT musí být platný, ale nemusí být otevřený. Pokud se připojení před Fill zavolání ukončí, otevře se za účelem načtení dat a pak se ukončí. Pokud je připojení před Fill zavolání otevřené, zůstane otevřené.

Operace Fill pak přidá řádky do zadaného cílového DataTable objektu v objektu DataSeta vytvoří DataTable objekt , pokud ještě neexistuje. Při vytváření objektu DataTableFill operace obvykle vytváří pouze metadata názvu sloupce. Pokud je ale vlastnost nastavená MissingSchemaAction na AddWithKey, vytvoří se také odpovídající primární klíče a omezení.

DbDataAdapter Pokud objekt při vyplňování DataTablenarazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "název_sloupce1", "název_sloupce2", "název_sloupce3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umisťují DataSet se do sloupců podle vzoru "Column1", "Column2" atd.

Přetížení Fill , které přijímá DataTable jako parametr, získá pouze první výsledek. Použijte přetížení Fill , které přijímá DataSet jako parametr pro získání více výsledků.

Metodu Fill můžete použít vícekrát na stejném DataTable. Pokud existuje primární klíč, příchozí řádky se sloučí s odpovídajícími řádky, které už existují. Pokud neexistuje žádný primární klíč, připojí se příchozí řádky k objektu DataTable.

Pokud objekt SelectCommand vrátí výsledky VNĚJŠÍHO SPOJENÍ, DataAdapter nenastaví PrimaryKey hodnotu pro výsledný DataTableobjekt . Abyste zajistili správné překladu duplicitních řádků, musíte explicitně definovat primární klíč. Další informace najdete v tématu Definování primárních klíčů.

Poznámka

Při zpracování dávkových příkazů SQL, které vrací více výsledků, implementace FillSchema pro zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Pokud chcete načíst informace o schématu pro více výsledků, použijte Fill příkaz s nastavenou MissingSchemaAction na AddWithKey.

Poznámky pro dědice

Toto přetížení Fill(DataSet) metody je chráněno a je určeno pro použití zprostředkovatelem dat rozhraní .NET Framework.

Viz také

Platí pro