Dotazování datových sad v aplikacích .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í.
Pokud chcete vyhledat konkrétní záznamy v datové sadě, použijte FindBy
metodu v tabulce DataTable, napište vlastní příkaz foreach pro smyčku přes kolekci Řádků tabulky nebo použijte LINQ to DataSet.
Citlivost velikosti velkých a malých písmen datové sady
Názvy tabulek a sloupců v datové sadě ve výchozím nastavení nerozlišují malá a velká písmena – to znamená, že tabulka v datové sadě s názvem Zákazníci se také může označovat jako "Zákazníci". To odpovídá konvencím vytváření názvů v mnoha databázích, včetně SQL Serveru. Výchozí chování SQL Serveru spočívá v tom, že názvy datových prvků nelze rozlišovat pouze v případě.
Poznámka:
Na rozdíl od datových sad rozlišují dokumenty XML malá a velká písmena, takže názvy datových prvků definovaných ve schématech rozlišují malá a velká písmena. Například protokol schématu umožňuje schématu definovat tabulku volanou Customers
a jinou tabulku s názvem customers
. To může vést ke kolizi názvů, pokud se ke generování třídy datové sady používá schéma obsahující prvky, které se liší pouze případem.
Citlivost malých a velkých písmen ale může být faktorem, jakým se data interpretují v datové sadě. Pokud například filtrujete data v tabulce datové sady, můžou kritéria hledání vracet různé výsledky v závislosti na tom, jestli je porovnání citlivé na malá a velká písmena. Nastavením vlastnosti datové sady CaseSensitive můžete řídit citlivost písmen filtrování, vyhledávání a řazení. Všechny tabulky v datové sadě ve výchozím nastavení dědí hodnotu této vlastnosti. (Tuto vlastnost můžete přepsat pro každou jednotlivou tabulku nastavením vlastnosti tabulky CaseSensitive .)
Vyhledání konkrétního řádku v tabulce dat
Vyhledání řádku v zadané datové sadě s hodnotou primárního klíče
Pokud chcete vyhledat řádek, zavolejte metodu silného typu
FindBy
, která používá primární klíč tabulky.V následujícím příkladu
CustomerID
je sloupec primárním klíčemCustomers
tabulky. To znamená, že vygenerovanáFindBy
metoda jeFindByCustomerID
. Příklad ukazuje, jak přiřadit konkrétní DataRow proměnné pomocí vygenerovanéFindBy
metody.
Vyhledání řádku v nezatypované datové sadě s hodnotou primárního klíče
Find Zavolejte metodu DataRowCollection kolekce a předejte primární klíč jako parametr.
Následující příklad ukazuje, jak deklarovat nový řádek volaný
foundRow
a přiřadit ji návratovou Find hodnotu metody. Pokud se primární klíč najde, obsah indexu sloupce 1 se zobrazí v poli se zprávou.
Vyhledání řádků podle hodnot sloupců
Vyhledání řádků na základě hodnot v libovolném sloupci
Datové tabulky se vytvoří pomocí Select metody, která vrátí pole DataRows na základě výrazu předaného metodě Select . Další informace o vytváření platných výrazů naleznete v části Syntaxe výrazu stránky o Expression vlastnosti.
Následující příklad ukazuje, jak použít Select metodu DataTable vyhledání konkrétních řádků.
Přístup k souvisejícím záznamům
Když jsou tabulky v datové sadě související, DataRelation může objekt zpřístupnit související záznamy v jiné tabulce. Můžete například zpřístupnit datovou sadu obsahující Customers
a Orders
tabulky.
Objekt můžete použít DataRelation k vyhledání souvisejících záznamů voláním GetChildRows metody DataRow v nadřazené tabulce. Tato metoda vrátí pole souvisejících podřízených záznamů. Nebo můžete volat metodu GetParentRow DataRow v podřízené tabulce. Tato metoda vrátí jednu DataRow z nadřazené tabulky.
Tato stránka obsahuje příklady použití typových datových sad. Informace o navigaci mezi relacemi v netypových datových sadách najdete v tématu Navigace v datových relacích.
Poznámka:
Pokud pracujete v aplikaci model Windows Forms a používáte funkce datové vazby k zobrazení dat, může formulář vygenerovaný návrhářem poskytovat dostatek funkcí pro vaši aplikaci. Další informace naleznete v tématu Vytvoření vazby ovládacích prvků k datům v sadě Visual Studio. Konkrétně se podívejte na relace v datových sadách.
Následující příklady kódu ukazují, jak procházet relace nahoru a dolů v typed datasets. Příklady kódu používají typy DataRows (NorthwindDataSet.OrdersRow
) a vygenerované metody FindByPrimaryKey (FindByCustomerID
) k vyhledání požadovaného řádku a vrácení souvisejících záznamů. Příklady se kompilují a správně spouštějí jenom v případě, že máte:
Instance datové sady s názvem
NorthwindDataSet
s tabulkouCustomers
Tabulka
Orders
.Relace s názvem
FK_Orders_Customers
související se dvěma tabulkami.
Kromě toho musí být obě tabulky vyplněné daty, aby se vrátily všechny záznamy.
Vrácení podřízených záznamů vybraného nadřazeného záznamu
GetChildRows Volání metody konkrétního
Customers
datového řádku a vrácení pole řádků zOrders
tabulky:
Vrácení nadřazeného záznamu vybraného podřízeného záznamu
GetParentRow Volání metody konkrétního
Orders
řádku dat a vrácení jednoho řádku zCustomers
tabulky: