Vytváření parametrizovaných dotazů 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. Tyto technologie 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í.

Parametrizovaný dotaz vrátí data, která splňují podmínky WHERE klauzule v dotazu. Můžete například parametrizovat seznam zákazníků tak, aby zobrazoval pouze zákazníky v určitém městě přidáním WHERE City = @City na konec příkazu SQL, který vrací seznam zákazníků.

V Návrháři datových sad vytvoříte parametrizované dotazy TableAdapter. Můžete je také vytvořit v aplikaci pro Windows pomocí příkazu Parameterize Data Source v nabídce Data. Příkaz Parametrizovat zdroj dat vytvoří ovládací prvky ve formuláři, kde můžete zadat hodnoty parametrů a spustit dotaz.

Poznámka:

Při vytváření parametrizovaného dotazu použijte zápis parametru, který je specifický pro databázi, pro kterou kódujete. Například Access a OleDb zdroje dat používají otazník "?" k označení parametrů, takže WHERE klauzule by vypadala takto: WHERE City = ?.

Vytvoření parametrizovaného dotazu TableAdapter

Vytvoření parametrizovaného dotazu v Návrháři datových sad

  • Vytvořte nový TableAdapter a do příkazu SQL přidejte WHERE klauzuli s požadovanými parametry. Další informace najdete v tématu Vytvoření a konfigurace objektů TableAdapter.

    nebo

  • Přidejte dotaz do existujícího objektu TableAdapter a do příkazu SQL přidejte WHERE klauzuli s požadovanými parametry.

Vytvoření parametrizovaného dotazu při návrhu formuláře vázaného na data

  1. Vyberte ovládací prvek ve formuláři, který je již svázán s datovou sadou. Další informace najdete v tématu Vytvoření vazby model Windows Forms ovládacích prvků k datům v sadě Visual Studio.

  2. V nabídce Data vyberte Přidat dotaz.

  3. Dokončete dialogové okno Tvůrce kritérií vyhledávání a do příkazu SQL přidejte WHERE klauzuli s požadovanými parametry.

Přidání dotazu do existujícího formuláře vázaného na data

  1. Otevřete formulář v návrháři model Windows Forms.

  2. V nabídce Data vyberte Přidat dotaz nebo inteligentní značky dat.

    Poznámka:

    Pokud příkaz Add Query není v nabídce Data k dispozici, vyberte ovládací prvek ve formuláři, který zobrazuje zdroj dat, ke kterému chcete přidat parametrizaci. Pokud například formulář zobrazuje data v ovládacím DataGridView prvku, vyberte ho. Pokud formulář zobrazuje data v jednotlivých ovládacích prvcích, vyberte libovolný ovládací prvek vázaný na data.

  3. V oblasti Vybrat tabulku zdroje dat vyberte tabulku, do které chcete přidat parametrizaci.

  4. Pokud vytváříte nový dotaz, zadejte název do pole Nový název dotazu.

    nebo

    Vyberte dotaz v poli Název existujícího dotazu .

  5. Do textového pole dotazu zadejte dotaz, který přebírá parametry.

  6. Vyberte OK.

    Ovládací prvek pro zadání parametru a tlačítko Načíst se přidá do formuláře v ovládacím ToolStrip prvku.

Dotaz na hodnoty null

Parametry TableAdapter lze přiřadit hodnoty null, pokud chcete dotazovat na záznamy, které nemají aktuální hodnotu. Představte si například následující dotaz, který má ShippedDate v klauzuli WHERE parametr:

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

Pokud se jedná o dotaz na TableAdapter, můžete zadat dotaz na všechny objednávky, které nebyly dodány s následujícím kódem:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Povolení, aby dotaz přijímal hodnoty null:

  1. V Návrháři datových sad vyberte dotaz TableAdapter, který musí přijímat hodnoty parametrů null.

  2. V okně Vlastnosti vyberte Parametry a pak výběrem tlačítka se třemi tečky (...) otevřete Editor kolekce parametrů.

  3. Vyberte parametr, který umožňuje hodnoty null a nastavte AllowDbNull vlastnost .true