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.
Metoda FillDataAdapter vyplní DataSet pouze sloupce tabulky a řádky ze zdroje dat. Omezení jsou však obvykle nastavena zdrojem dat, avšak metoda Fill tyto informace o schématu do DataSet ve výchozím nastavení nepřidá. Chcete-li naplnit DataSet informacemi o existujících omezeních primárního klíče ze zdroje dat, můžete buď použít metodu FillSchema objektu DataAdapter, nebo nastavit vlastnost MissingSchemaAction objektu DataAdapter na AddWithKey před voláním metody Fill. Tím zajistíte, aby omezení primárních klíčů v DataSet odrážela omezení ve zdroji dat. Informace o omezení cizího klíče nejsou zahrnuty a musí být vytvořeny explicitně, jak je znázorněno v omezeních tabulky DataTable.
Přidání informací o schématu DataSet před vyplněním dat zajišťuje, že omezení klíče DataTable primárního jsou zahrnuta u objektů v DataSetu. V důsledku toho se při dalších voláních k vyplnění DataSet těchto dat používají informace o sloupci primárního klíče ke spárování nových řádků ze zdroje dat s aktuálními řádky v každé tabulce DataTable a aktuální data v tabulkách se přepíšou daty ze zdroje dat. Bez informací o schématu se nové řádky ze zdroje dat připojí k datové sadě, což vede k duplicitním řádkům.
Poznámka:
Pokud je sloupec ve zdroji dat identifikován jako auto-increment, FillSchema metoda nebo Fill metoda s MissingSchemaActionAddWithKey, vytvoří DataColumn s vlastností AutoIncrement nastavenou na true. Budete ale muset nastavit hodnoty AutoIncrementStep a AutoIncrementSeed sami. Další informace o automatickém přírůstku sloupců naleznete v tématu Vytváření sloupců automatického přírůstku.
Použití FillSchema nebo nastavení MissingSchemaAction na AddWithKey vyžaduje dodatečné zpracování ve zdroji dat pro určení informací o primárním klíči sloupce. Toto další zpracování může bránit výkonu. Pokud znáte informace o primárním klíči v době návrhu, doporučujeme explicitně zadat sloupec nebo sloupce primárního klíče, abyste dosáhli optimálního výkonu. Informace o explicitním nastavení informací o primárním klíči pro tabulku naleznete v tématu Definování primárních klíčů.
Následující příklad kódu ukazuje, jak přidat informace o schématu do DataSet pomocí metody FillSchema:
Dim custDataSet As New DataSet()
custAdapter.FillSchema(custDataSet, SchemaType.Source, "Customers")
custAdapter.Fill(custDataSet, "Customers")
var custDataSet = new DataSet();
custAdapter.FillSchema(custDataSet, SchemaType.Source, "Customers");
custAdapter.Fill(custDataSet, "Customers");
Následující příklad kódu ukazuje, jak pomocí vlastnosti MissingSchemaAction.AddWithKey metody Fill přidat informace o schématu DataSet:
Dim custDataSet As New DataSet()
custAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
custAdapter.Fill(custDataSet, "Customers")
var custDataSet = new DataSet();
custAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
custAdapter.Fill(custDataSet, "Customers");
Zpracování více sad výsledků
Pokud narazí na DataAdapter více sad výsledků vrácených z SelectCommand, vytvoří v datové sadě více tabulek. Tabulky dostanou výchozí název ve formě TableN, který začíná číslem Table a postupně se zvyšuje, místo aby začínal "Table0". Pokud je název tabulky předán metodě FillSchema jako argument, tabulky budou mít nulové přírůstkové názvy TableNameN, počínaje hodnotou TableName namísto "TableName0".
Poznámka:
FillSchema Pokud je volána metoda objektuOleDbDataAdapter, který vrací více sad výsledků, vrátí se pouze informace o schématu z první sady výsledků. Při vracení informací o schématu pro více sad výsledků pomocí OleDbDataAdapter je doporučeno zadat parametr MissingSchemaAction pro AddWithKey a získat informace o schématu při volání metody Fill.