Sdílet prostřednictvím


Vytváření a konfigurace objektů TableAdapter v aplikacích rozhraní .NET Framework

Poznámka:

Datové sady a související třídy jsou staršími technologiemi rozhraní .NET Framework z počátku 2000, které aplikacím umožňují pracovat s daty v paměti, zatímco aplikace jsou odpojené od databáze. Jsou zvláště užitečné pro aplikace, které uživatelům umožňují upravovat data a uchovávat změny zpět do databáze. I když se datové sady ukázaly jako velmi úspěšná technologie, doporučujeme, aby nové aplikace .NET používaly Entity Framework Core. Entity Framework poskytuje přirozenější způsob práce s tabulkovými daty jako objektovými modely a má jednodušší programovací rozhraní.

Objekty TableAdapter umožňují komunikaci mezi aplikací a databází. Připojí se k databázi, spustí dotazy nebo uložené procedury a buď vrátí novou tabulku dat, nebo vyplní existující DataTable vrácená data. Objekty TableAdapter můžou také odesílat aktualizovaná data z vaší aplikace zpět do databáze.

Při provádění jedné z následujících akcí se pro vás vytvoří nástroje TableAdapter:

  • Přetáhněte databázové objekty z Průzkumníka serveru do Návrháře datových sad.

  • Spusťte Průvodce konfigurací zdroje dat a vyberte typ zdroje dat databáze nebo webové služby .

    Průvodce konfigurací zdroje dat v sadě Visual Studio

Můžete také vytvořit nový objekt TableAdapter a nakonfigurovat ho se zdrojem dat přetažením objektu TableAdapter z panelu nástrojů do prázdné oblasti v návrháři datových sad.

Úvod do objektů TableAdapter najdete v tématu Vyplnění datových sad pomocí objektů TableAdapter.

Poznámka:

V počítači se můžou zobrazovat různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio v tomto článku. Možná používáte jinou edici sady Visual Studio nebo jiné nastavení prostředí. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).

Použití Průvodce konfigurací TableAdapter

Spuštěním Průvodce konfigurací TableAdapter vytvořte nebo upravte objekty TableAdapter a jejich přidružené datové tabulky. Existující objekt TableAdapter můžete nakonfigurovat tak, že na něj kliknete pravým tlačítkem v Návrháři datových sad.

Snímek obrazovky s Průvodce konfigurací adaptéru tabulky

Pokud přetáhnete nový objekt TableAdapter ze sady nástrojů, když je návrhář datové sady fokus, spustí se průvodce a zobrazí výzvu k určení zdroje dat, ke kterému zdroji dat se má objekt TableAdapter připojit. Na další stránce se průvodce zeptá, jaký druh příkazů by měl použít ke komunikaci s databází, a to buď příkazy SQL, nebo uložené procedury. (Tuto obrazovku nevidíte, pokud konfigurujete objekt TableAdapter, který je již přidružený ke zdroji dat.)

  • Máte možnost vytvořit novou uloženou proceduru v podkladové databázi, pokud máte správná oprávnění pro databázi. Pokud tato oprávnění nemáte, tato možnost není dostupná.

  • Můžete také spustit existující uložené procedury pro příkazy SELECT, INSERT, UPDATE a DELETE objektu TableAdapter. Uložená procedura přiřazená k příkazu Update se například spustí při TableAdapter.Update() volání metody.

Namapujte parametry z vybrané uložené procedury na odpovídající sloupce v tabulce dat. Pokud například uložená procedura přijímá parametr s názvem @CompanyName , který předává CompanyName do sloupce v tabulce, nastavte Source Column parametru @CompanyName na CompanyName.

Poznámka:

Uložená procedura přiřazená SELECT k příkazu se spustí voláním metody TableAdapter, kterou pojmenujete v dalším kroku průvodce. Výchozí metoda je Fill, takže kód, který se obvykle používá ke spuštění SELECT procedury je TableAdapter.Fill(tableName). Pokud změníte výchozí název z Fill, nahraďte Fill názvem, který přiřadíte, a nahraďte "TableAdapter" skutečným názvem objektu TableAdapter (například CustomersTableAdapter).

  • Výběr metod Create pro odesílání aktualizací přímo do databáze je ekvivalentní nastavení GenerateDBDirectMethods vlastnosti na true. Možnost není k dispozici, pokud původní příkaz SQL neposkytuje dostatek informací nebo dotaz není aktualizovatelný dotaz. K této situaci může dojít například v dotazech JOIN a dotazech, které vracejí jednu (skalární) hodnotu.

Rozšířené možnosti v průvodci umožňují:

  • Generování INSERTpříkazů UPDATEa DELETE příkazů na SELECT základě příkazu, který je definován na stránce Generování příkazů SQL
  • Použití optimistické souběžnosti
  • Určete, jestli se má aktualizovat tabulka dat po INSERT spuštění a UPDATE příkazy.

Konfigurace metody Fill prvku TableAdapter

Někdy můžete chtít změnit schéma tabulky TableAdapter. Uděláte to tak, že upravíte primární Fill metodu TableAdapter. Objekty TableAdapter jsou vytvořeny pomocí primární Fill metody, která definuje schéma přidružené tabulky dat. Primární Fill metoda je založená na dotazu nebo uložené procedurě, kterou jste zadali při původní konfiguraci TableAdapter. Jedná se o první (nejvyšší) metodu v tabulce dat v Návrháři datové sady.

TableAdapter s více dotazy

Všechny změny provedené v hlavní Fill metodě TableAdapter se projeví ve schématu přidružené tabulky dat. Například odebrání sloupce z dotazu v hlavní Fill metodě odebere také sloupec z přidružené tabulky dat. Odebráním sloupce z hlavní Fill metody navíc odeberete sloupec z dalších dotazů na tento objekt TableAdapter.

Průvodce konfigurací dotazu TableAdapter můžete použít k vytvoření a úpravě dalších dotazů pro TableAdapter. Tyto další dotazy musí odpovídat schématu tabulky, pokud nevrátí skalární hodnotu. Každý další dotaz má zadaný název.

Následující příklad ukazuje, jak volat další dotaz s názvem FillByCity:

CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")

Spuštění Průvodce konfigurací dotazu TableAdapter s novým dotazem

  1. Otevřete datovou sadu v Návrháři datových sad.

  2. Pokud vytváříte nový dotaz, přetáhněte objekt Dotazu z karty DataSet panelu DataTablenástrojů na položku nebo vyberte Přidat dotaz z místní nabídky Objekt TableAdapter. Objekt dotazu můžete také přetáhnout do prázdné oblasti Návrháře datových sad, který vytvoří Objekt TableAdapter bez přidruženého DataTableobjektu . Tyto dotazy můžou vracet pouze jednoduché (skalární) hodnoty nebo spouštět UPDATEINSERT, nebo DELETE příkazy vůči databázi.

  3. Na obrazovce Zvolit data Připojení ion vyberte nebo vytvořte připojení, které dotaz použije.

    Poznámka:

    Tato obrazovka se zobrazí jenom v případě, že návrhář nemůže určit správné připojení, které se má použít, nebo když nejsou k dispozici žádná připojení.

  4. Na obrazovce Zvolit typ příkazu vyberte z následujících metod načítání dat z databáze:

    • Příkazy SQL umožňují zadat příkaz SQL pro výběr dat z databáze.

    • Vytvoření nové uložené procedury umožňuje, aby průvodce vytvořil novou uloženou proceduru (v databázi) na základě zadaného SELECT příkazu.

    • Použití existujících uložených procedur umožňuje spustit existující uloženou proceduru při spuštění dotazu.

Spuštění průvodce konfigurací dotazu TableAdapter u existujícího dotazu

  • Pokud upravujete existující dotaz TableAdapter, klikněte pravým tlačítkem myši na dotaz a v místní nabídce zvolte Konfigurovat .

    Poznámka:

    Kliknutím pravým tlačítkem myši na hlavní dotaz objektu TableAdapter překonfiguruje objekt TableAdapter a DataTable schéma. Kliknutí pravým tlačítkem myši na další dotaz v objektu TableAdapter však nakonfiguruje pouze vybraný dotaz. Průvodce konfigurací TableAdapter překonfiguruje definici TableAdapter, zatímco Průvodce konfigurací dotazu TableAdapter překonfiguruje pouze vybraný dotaz.

Přidání globálního dotazu do objektu TableAdapter

  • Globální dotazy jsou dotazy SQL, které vrací buď jednu (skalární) hodnotu, nebo žádnou hodnotu. Globální funkce obvykle provádějí databázové operace, jako jsou vložení, aktualizace a odstranění. Agregují také informace, například počet zákazníků v tabulce nebo celkové poplatky za všechny položky v konkrétní objednávce.

    Globální dotazy přidáte přetažením objektu Dotazu z karty DataSet panelu nástrojů do prázdné oblasti Návrháře datových sad.

  • Zadejte dotaz, který provede požadovaný úkol, SELECT COUNT(*) AS CustomerCount FROM Customersnapříklad .

    Poznámka:

    Přetažením objektu Query přímo do Návrháře datových sad se vytvoří metoda, která vrátí pouze skalární (jednu) hodnotu. I když dotaz nebo uložená procedura, kterou vyberete, může vrátit více než jednu hodnotu, metoda vytvořená průvodcem vrátí pouze jednu hodnotu. Dotaz může například vrátit první sloupec prvního řádku vrácených dat.