Sdílet prostřednictvím


DbDataAdapter.Fill Metoda

Definice

Vyplní nebo DataSetDataTable.

Přetížení

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

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

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

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

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

Přidá nebo aktualizuje řádky v zadané oblasti takDataSet, aby odpovídaly řádkům ve zdroji dat pomocí , DataSetDataTablea IDataReader názvů.

Fill(DataSet, Int32, Int32, String)

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

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)

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

Fill(DataTable, IDataReader)

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

Fill(DataSet, String)

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

Fill(DataSet)

Přidá nebo aktualizuje řádky v sadě DataSet.

Fill(DataTable, IDbCommand, CommandBehavior)

Přidá nebo aktualizuje řádky takDataTable, aby odpovídaly řádkům ve zdroji dat pomocí zadaného IDbCommandDataTablea CommandBehavior.

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

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

Přidá nebo aktualizuje řádky v zadané oblasti tak DataSet , aby odpovídaly řádkům ve zdroji dat pomocí DataSet názvů a názvů zdrojových tabulek, příkazového řetězce 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 k DataSet vyplnění záznamů a v případě potřeby schématu.

startRecord
Int32

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

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadejte 0 pro načtení všech záznamů po počátečním 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 nebo aktualizovány v souboru DataSet. Nezahrnuje řádky ovlivněné příkazy, které nevrací řá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 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 zavolání zavřené Fill , otevře se pro načtení dat a zavře se. 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 DataSetobjektu , vytváření DataTable objektů, pokud ještě neexistují. Při vytváření DataTable objektů Fill obvykle operace vytváří pouze metadata názvu sloupce. Pokud je však MissingSchemaAction vlastnost nastavena na AddWithKey, jsou vytvořeny také příslušné primární klíče a omezení.

Pokud dojde k duplicitním sloupcům při naplnění DataTable, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd.DbDataAdapter Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet vzoru Column1, Column2 atd. Když do DataSet každé sady výsledků přidáte více sad výsledků, umístí se do samostatné tabulky. Další sady výsledků jsou pojmenovány 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 nejsou žádné konflikty s těmito vzory pojmenování.

Metoda Fill podporuje scénáře, kdy DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze v případě. Vtakovýchch Fill 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 v případě, že DataTable se aktualizuje. V tomto scénáři je porovnání nerozlišující velká a malá 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 k němu DataTablepříchozí řádky .

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete v tématu Definování primárních klíčů.

Poznámka:

Při zpracování dávkových příkazů SQL, které vracejí více výsledků, načte implementace Fill a FillSchema pro zprostředkovatele dat rozhraní .NET Framework 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í poskytovatelem dat rozhraní .NET Framework.

Viz také

Platí pro

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

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

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

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, se kterým začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadejte 0 pro načtení všech záznamů po počátečním záznamu.

command
IDbCommand

Spuštěním IDbCommandDataTable se vyplní objekty.

behavior
CommandBehavior

Jedna z CommandBehavior hodnot.

Návraty

Počet řádků přidaných do datových tabulek nebo jejich aktualizace.

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 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 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 před zavolání zavřenýFill, otevře se pro načtení dat a zavře se. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

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

Pokud objekt DbDataAdapter při naplnění DataTableobjektu narazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet 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ů jsou pojmenovány 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 zpracovávali vložený dotaz následovaný výběrovým dotazem, tabulka vytvořená pro výběrový dotaz by měla mít 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 nejsou žádné konflikty s těmito vzory pojmenování.

Metoda Fill podporuje scénáře, kdy DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze v případě. Vtakovýchch Fill 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 v případě, že DataTable se aktualizuje. V tomto scénáři je porovnání nerozlišující velká a malá 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 naplnění tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v datových tabulkách. Zbývající část operace je přerušena.

Pokud příkaz SELECT použitý k naplnění DataTable objektů vrátí více výsledků, jako je 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 maxRecords SQL se vztahuje pouze na první výsledek. Totéž platí pro řádky obsahující kapitolované výsledky (pouze zprostředkovatel dat rozhraní .NET Framework pro OLE DB). Výsledek nejvyšší úrovně je omezen , maxRecordsale všechny podřízené řádky jsou přidány.

  • Pokud některý z výsledků obsahuje chybu, všechny následující výsledky se přeskočí.

Poznámka:

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

Poznámky pro dědice

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

Viz také

Platí pro

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

Přidá nebo aktualizuje řádky v zadané oblasti takDataSet, aby odpovídaly řádkům ve zdroji dat pomocí , DataSetDataTablea IDataReader názvů.

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 k DataSet vyplnění záznamů a v případě potřeby schématu.

srcTable
String

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

dataReader
IDataReader

Název IDataReader.

startRecord
Int32

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

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadejte 0 pro načtení všech záznamů po počátečním záznamu.

Návraty

Počet řádků, které byly úspěšně přidány nebo aktualizovány v souboru DataSet. Nezahrnuje řádky ovlivněné příkazy, které nevrací řá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
Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs

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

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 k DataSet vyplnění záznamů a v případě potřeby schématu.

startRecord
Int32

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

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadejte 0 pro načtení všech záznamů po počátečním záznamu.

srcTable
String

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

Návraty

Počet řádků, které byly úspěšně přidány nebo aktualizovány v souboru DataSet. Nezahrnuje řádky ovlivněné příkazy, které nevrací řá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í DataSet 15 řádků, počínaje řádkem 10, z tabulky Categories . Tento příklad předpokládá, že jste vytvořili a OleDbDataAdapterDataSet.

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 před zavolání zavřenaFill, otevře se pro načtení dat a zavření. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

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

Pokud objekt DbDataAdapter při naplnění DataTableobjektu narazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet 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ů jsou pojmenovány připojením integrálních hodnot k zadanému názvu tabulky (například "Tabulka", "Tabulka1", "Tabulka2" atd.). Vzhledem k tomu, že není vytvořena žádná tabulka pro dotaz, který nevrací řádky, pokud zpracujete vložený dotaz následovaný výběrovým dotazem, tabulka vytvořená pro výběrový dotaz má 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 nejsou žádné konflikty s těmito vzory pojmenování.

Metoda Fill podporuje scénáře, kdy DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze v případě. Vtakovýchch Fill 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 v případě, že DataTable se aktualizuje. V tomto scénáři je porovnání nerozlišující velká a malá 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 naplnění tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v datových tabulkách. Zbývající část operace je přerušena.

Pokud příkaz SELECT použitý k naplnění DataSet vrátí více výsledků, jako jsou 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 maxRecords SQL se vztahuje pouze na první výsledek. Totéž platí pro řádky obsahující kapitolované výsledky (pouze zprostředkovatel dat rozhraní .NET Framework pro OLE DB). Výsledek nejvyšší úrovně je omezen maxRecords, ale všechny podřízené řádky jsou přidány.

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

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

  1. Příkaz SQL by měl odpovídat příkazu, který byl původně použit k naplnění DataSet.

  2. Informace o klíčovém sloupci musí být k dispozici.

Pokud jsou k dispozici informace o primárním klíči, všechny duplicitní řádky budou odsouhlasené a zobrazí se pouze jednou v DataTable odpovídající hodnotě DataSet. Informace o primárním klíči mohou být nastaveny buď prostřednictvím FillSchema, zadáním PrimaryKey vlastnosti DataTable, nebo nastavením MissingSchemaAction vlastnosti na AddWithKey.

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete 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 zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Chcete-li načíst informace o schématu pro více výsledků, použijte Fill s nastavenou na MissingSchemaActionAddWithKeyhodnotu .

Poznámka:

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

Poznámky pro dědice

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

Viz také

Platí pro

Fill(Int32, Int32, DataTable[])

Zdroj:
DbDataAdapter.cs
Zdroj:
DbDataAdapter.cs
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čítání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 založené na nule, se kterým začnete.

maxRecords
Int32

Maximální počet záznamů, které se mají načíst. Zadejte 0 pro načtení všech záznamů po počátečním záznamu.

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 neobsahuje řá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 zavolání zavřené Fill , otevře se pro načtení dat 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 DataSetobjektu , vytváření DataTable objektů, pokud ještě neexistují. Při vytváření DataTable objektů Fill obvykle operace vytváří pouze metadata názvu sloupce. Pokud je však MissingSchemaAction vlastnost nastavena na AddWithKey, jsou vytvořeny také příslušné primární klíče a omezení.

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete v tématu Definování primárních klíčů.

Pokud datový adaptér při naplnění narazí DataTablena duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet vzoru Column1, Column2 atd. Při přidání více sad výsledků do DataSettéto sady výsledků se každá sada výsledků umístí do samostatné tabulky. Další sady výsledků jsou pojmenovány 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 nejsou žádné konflikty s těmito vzory pojmenování.

Pokud příkaz SELECT použitý k naplnění DataSet vrátí více výsledků, například dávkové příkazy SQL, pokud některý z výsledků obsahuje chybu, všechny následné výsledky se přeskočí a nepřidají 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 k němu DataTablepříchozí řádky .

Poznámka:

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

Viz také

Platí pro

Fill(DataTable)

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

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

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, který DataTable se má použít pro mapování tabulek.

Návraty

Počet řádků, které byly úspěšně přidány nebo aktualizovány v souboru DataSet. Nezahrnuje řádky ovlivněné příkazy, které nevrací řá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 je připojení před zavolání zavřené Fill , otevře se pro načtení dat a zavře se. 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 DataSetobjektu , vytváření DataTable objektů, pokud ještě neexistují. Při vytváření DataTable objektů Fill obvykle operace vytváří pouze metadata názvu sloupce. Pokud je však MissingSchemaAction vlastnost nastavena na AddWithKey, jsou vytvořeny také příslušné primární klíče a omezení.

Pokud dojde k duplicitním sloupcům při naplnění DataTable, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd.DbDataAdapter Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet vzoru Column1, Column2 atd. Když do DataSet každé sady výsledků přidáte více sad výsledků, umístí se do samostatné tabulky.

Přetížení Fill , které přebírá DataTable jako parametr pouze první výsledek. K získání více výsledků použijte přetížení Fill , které přebírá DataSet jako parametr.

Metoda Fill podporuje scénáře, kdy DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze v případě. Vtakovýchch Fill 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 v případě, že DataTable se aktualizuje. V tomto scénáři je porovnání nerozlišující velká a malá 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 k němu DataTablepříchozí řádky .

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete v tématu Definování primárních klíčů.

Poznámka:

Při zpracování dávkových příkazů SQL, které vracejí více výsledků, načte implementace Fill a FillSchema pro zprostředkovatele dat rozhraní .NET Framework 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í poskytovatelem dat rozhraní .NET Framework.

Viz také

Platí pro

Fill(DataTable, IDataReader)

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

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 k DataTable vyplnění záznamů a v případě potřeby schématu.

dataReader
IDataReader

Název IDataReader.

Návraty

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

Platí pro

Fill(DataSet, String)

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

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

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 k DataSet 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í tabulek.

Návraty

Počet řádků, které byly úspěšně přidány nebo aktualizovány v souboru DataSet. Nezahrnuje řádky ovlivněné příkazy, které nevrací řádky.

Výjimky

Zdrojová tabulka je neplatná.

Příklady

Následující příklad používá odvozenou třídu , OleDbDataAdapterk vyplnění DataSet řádků z tabulky kategorií. Tento příklad předpokládá, že jste vytvořili a OleDbDataAdapterDataSet.

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 před zavolání zavřenýFill, otevře se pro načtení dat a zavře se. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

Pokud příkaz nevrací žádné řádky, žádné tabulky nejsou přidány do DataSeta není vyvolána žádná výjimka.

Pokud objekt DbDataAdapter při naplnění DataTableobjektu narazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet 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ů jsou pojmenovány 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 zpracovávali vložený dotaz následovaný výběrovým dotazem, tabulka vytvořená pro výběrový dotaz by měla mít 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 nejsou žádné konflikty s těmito vzory pojmenování.

Metoda Fill podporuje scénáře, kdy DataSet obsahuje více DataTable objektů, jejichž názvy se liší pouze v případě. Vtakovýchch Fill 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 v případě, že DataTable se aktualizuje. V tomto scénáři je porovnání nerozlišující velká a malá 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 naplnění tabulek dat dojde k chybě nebo výjimce, řádky přidané před výskytem chyby zůstanou v datových tabulkách. Zbývající část operace je přerušena.

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 některý z výsledků obsahuje chybu, všechny následné výsledky se přeskočí a nepřidají do DataSetsouboru .

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

  1. Příkaz SQL by měl odpovídat příkazu, který byl původně použit k naplnění DataSet.

  2. Informace o klíčovém sloupci musí být k dispozici. Pokud jsou k dispozici informace o primárním klíči, všechny duplicitní řádky jsou odsouhlasené a zobrazí se pouze jednou v odpovídající DataTable hodnotě DataSet. Informace o primárním klíči mohou být nastaveny buď prostřednictvím FillSchema, zadáním PrimaryKey vlastnosti DataTable, nebo nastavením MissingSchemaAction vlastnosti na AddWithKey.

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete 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 zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Chcete-li načíst informace o schématu pro více výsledků, použijte Fill s nastavenou na MissingSchemaActionAddWithKeyhodnotu .

Poznámky pro dědice

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

Viz také

Platí pro

Fill(DataSet)

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

Přidá nebo aktualizuje řádky v sadě 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 k DataSet vyplnění záznamů a v případě potřeby schématu.

Návraty

Počet řádků, které byly úspěšně přidány nebo aktualizovány v souboru DataSet. Nezahrnuje řádky ovlivněné příkazy, které nevrací řá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 před zavolání zavřenaFill, otevře se pro načtení dat a zavření. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

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

Pokud příkaz nevrací žádné řádky, žádné tabulky nejsou přidány do DataSeta není vyvolána žádná výjimka.

Pokud objekt DbDataAdapter při naplnění DataTableobjektu narazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet 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ů jsou pojmenovány 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, tabulka vytvořená pro výběrový dotaz má 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 nejsou žádné konflikty s těmito vzory pojmenování.

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

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

  1. Příkaz SQL by měl odpovídat příkazu, který byl původně použit k naplnění DataSet.

  2. Informace o klíčovém sloupci musí být k dispozici.

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

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete 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 zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Chcete-li načíst informace o schématu pro více výsledků, použijte Fill s nastavenou na MissingSchemaActionAddWithKeyhodnotu .

Viz také

Platí pro

Fill(DataTable, IDbCommand, CommandBehavior)

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

Přidá nebo aktualizuje řádky takDataTable, aby odpovídaly řádkům ve zdroji dat pomocí zadaného IDbCommandDataTablea 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 k DataTable 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 nebo aktualizovány v souboru DataTable. Nezahrnuje řádky ovlivněné příkazy, které nevrací řá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 je připojení před zavolání zavřené Fill , otevře se pro načtení dat a zavření. Pokud je připojení otevřené před Fill zavolání, zůstane otevřené.

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

Pokud objekt DbDataAdapter při naplnění DataTableobjektu narazí na duplicitní sloupce, vygeneruje názvy pro následující sloupce pomocí vzoru "columnname1", "columnname2", "columnname3" atd. Pokud příchozí data obsahují nepojmenované sloupce, umístí se do DataSet vzoru Column1, Column2 atd.

Přetížení Fill , které přebírá DataTable jako parametr pouze první výsledek. K získání více výsledků použijte přetížení Fill , které přebírá DataSet jako parametr.

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 k němu DataTablepříchozí řádky .

Pokud SelectCommand vrátí výsledky vnějšího spojení, DataAdapter nenastaví hodnotu PrimaryKey pro výsledný DataTable. Musíte explicitně definovat primární klíč, aby se zajistilo, že se správně přeloží duplicitní řádky. Další informace naleznete 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 zprostředkovatele dat rozhraní .NET Framework pro OLE DB načte informace o schématu pouze pro první výsledek. Chcete-li načíst informace o schématu pro více výsledků, použijte Fill s nastavenou na MissingSchemaActionAddWithKeyhodnotu .

Poznámky pro dědice

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

Viz také

Platí pro