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.
Poznámka:
Třídy DataSet a související třídy jsou starší technologie rozhraní .NET Framework z počátku 2000, které umožňují aplikacím pracovat s daty v paměti, zatímco aplikace jsou odpojeny 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ž jsou datové sady ověřenou úspěšnou technologií, doporučeným přístupem pro nové aplikace .NET je použití 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í.
Tento kurz obsahuje podrobné pokyny pro předávání dat z jednoho formuláře do druhého. Pomocí tabulek Zákazníci a Objednávky z ukázkové databáze Northwind umožňuje jeden formulář uživatelům vybrat zákazníka a druhý formulář zobrazí objednávky vybraného zákazníka. V tomto kurzu se dozvíte, jak vytvořit metodu ve druhém formuláři, který přijímá data z prvního formuláře.
V tomto kurzu dokončíte následující úlohy:
- Vytvořte nový projekt aplikace Windows Forms (.NET Framework).
- Vytvořte a nakonfigurujte datovou sadu pomocí Průvodce konfigurací zdroje dat.
- Vyberte ovládací prvek, který chcete vytvořit ve formuláři při přetažení položek z okna Zdroje dat . Další informace naleznete v tématu Nastavení ovládacího prvku, který se má vytvořit při přetažení z okna Zdroje dat.
- Vytvořte ovládací prvek svázaný s daty přetažením položek z okna Zdroje dat do formuláře.
- Vytvořte druhý formulář s mřížkou, která zobrazuje data.
- Vytvořte
TableAdapterdotaz pro načtení objednávek pro konkrétního zákazníka. - Předávání dat mezi formuláři
Poznámka:
Tento kurz ukazuje pouze jeden způsob předávání dat mezi formuláři. Existují další možnosti předávání dat do formuláře, například vytvoření druhého konstruktoru pro příjem dat nebo vytvoření veřejné vlastnosti, kterou lze nastavit s daty z prvního formuláře.
Požadavky
Úlohy vývoje desktopových aplikací .NET a ukládání a zpracování dat nainstalované v sadě Visual Studio. Pokud je chcete nainstalovat, otevřete Instalační program sady Visual Studio a zvolte Upravit nebo Upravit>, vedle verze sady Visual Studio, kterou chcete použít. Další informace naleznete v tématu Úprava sady Visual Studio.
SQL Server Express 2019 LocalDB nainstalovaný buď ze stránky pro stahování SQL Serveru, nebo prostřednictvím instalačního programu sady Visual Studio jako součást úlohy ukládání a zpracování dat .
Ukázková databáze Northwind vytvořená pomocí následujícího postupu:
V sadě Visual Studio otevřete okno Průzkumníka objektů SQL Serveru tak, že ho vyberete z nabídky Zobrazit . Průzkumník objektů SQL Serveru se instaluje jako součást úlohy ukládání a zpracování dat .
Rozbalte uzel SQL Serveru , klikněte pravým tlačítkem na instanci LocalDB a výběrem možnosti Nový dotaz otevřete okno editoru dotazů.
Zkopírujte skript Northwind Transact-SQL do vaší schránky. Tento skript T-SQL vytvoří databázi Northwind a naplní ji daty.
Vložte skript T-SQL do editoru dotazů a potom v horní části okna vyberte Spustit a vytvořte databázi Northwind.
Vytvoření projektu aplikace Windows Forms
V sadě Visual Studio v nabídce Soubor vyberte Nový>projekt.
V rozevíracím seznamu Všechny jazyky vyberte jazyk C# nebo Visual Basic, Windows z rozevíracího seznamu Všechny platformy a Desktop ze seznamu Všechny typy projektů.
Ze seznamu šablon projektů vyberte aplikaci Windows Forms (.NET Framework) a pak vyberte Další.
Pojmenujte projekt PassingDataBetweenForms, vyberte Další a pak vyberte Vytvořit.
Projekt PassingDataBetweenForms se vytvoří a přidá do Průzkumníka řešení. Zobrazení designeru Form1 se zobrazí v editoru.
Vytvoření zdroje dat
Otevřete okno Zdroje dat výběrem možnostiPřidat nový zdroj dat> v nabídce sady Visual Studio.
V okně Zdroje dat vyberte Přidat nový zdroj dat a spusťte průvodce konfigurací zdroje dat .
Na stránce Zvolit typ zdroje dat vyberte Databázi a pak vyberte Další.
Na stránce Zvolit model databáze ověřte, že je zadaná datová sada , a vyberte Další.
Pokud je datové připojení k ukázkové databázi Northwind již dostupné, vyberte na stránce Zvolit datové připojení a pokračujte krokem Zvolit databázové objekty . V opačném případě vyberte Nové připojení.
Na obrazovce Zvolit zdroj dat vyberte soubor databáze Microsoft SQL Serveru a pak vyberte Pokračovat.
Na obrazovce Přidat připojení vyberte Procházet, přejděte na northwnd.mdf soubor a vyberte Otevřít.
Buď vyberte Ověřování systému Windows, nebo vyberte Ověřování SQL Serveru a zadejte uživatelské jméno a heslo pro přístup k databázi.
Výběrem možnosti Test připojení otestujte připojení. Po úspěšném připojení vyberte OK.
Na stránce Zvolit datové připojení potvrďte , že se zobrazí soubor databáze, a vyberte Další.
Vyberte Ne na místní otázku Chcete zkopírovat soubor do svého projektu a upravit připojení?
Na stránce Uložit připojovací řetězec na stránce Konfigurační soubor aplikace vyberte Ano. Pojmenujte připojení NorthwindConnectionString a pak vyberte Další.
Na stránce Zvolit databázové objekty rozbalte uzel Tabulky , vyberte tabulky Zákazníci a Objednávky , pojmenujte datovou sadu NorthwindDataSet a pak vyberte Dokončit.
Do projektu se přidá NorthwindDataSet a tabulky Customers and Orders se zobrazí v okně Zdroje dat .
Naplnění prvního formuláře
Pokud chcete vytvořit mřížku vázanou na data, přetáhněte uzel Zákazníci z okna Zdroje dat do formuláře Form1.
Ovládací DataGridView prvek a BindingNavigator pruh nástrojů pro navigaci v záznamech se zobrazí ve formuláři Form1. NorthwindDataSet,
CustomersTableAdapter, a BindingSource, BindingNavigator se objeví v zásobníku komponent.
Vytvoření druhého formuláře
Vytvořte druhý formulář pro předávání dat.
V nabídce Projekt zvolte Přidat formulář (Windows Forms).
Ponechte výchozí název formuláře 2 a vyberte Přidat.
Přetáhněte hlavní uzel Objednávky z okna Zdroje dat do formuláře 2.
Na DataGridView jsou zobrazeny BindingNavigator a nástrojový pruh pro navigaci v záznamech. NorthwindDataSet,
CustomersTableAdapter, a BindingSource, BindingNavigator se objeví v zásobníku komponent.Odstraňte OrdersBindingNavigator z zásobníku komponent. BindingNavigator zmizí z formuláře Form2.
Přidejte dotaz TableAdapteru
TableAdapter Přidejte dotaz do formuláře Form2, který načte objednávky pro zákazníka vybraného ve formuláři Form1.
Poklikejte na soubor NorthwindDataSet.xsd v Průzkumníku řešení.
V tabulce Objednávky klikněte pravým tlačítkem myši na ObjednávkyTableAdapter a vyberte Přidat>Dotaz.
Ponechte výchozí možnost Použít příkazy SQL a vyberte Další.
Ponechte výchozí možnost SELECT, která vrací řádky , a vyberte Další.
V části Jaká data by se měla tabulka načíst, aby se vrátila
Ordersna základěCustomerID, přidejte klauzuliWHEREna konec dotazu. Konečný dotaz by měl vypadat podobně jako následující kód:SELECT OrderID, CustomerID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerIDPoznámka:
Použijte správnou syntaxi parametru pro vaši databázi. Například v Microsoft Accessu
WHEREby klauzule vypadala taktoWHERE CustomerID = ?.Vyberte Další.
Na obrazovce Choose Methods to Generate vyberte možnost Fill a DataTable a zadejte FillByCustomerID.
Zrušte výběr možnosti Vrátit tabulku dat a pak vyberte Dokončit.
Vytvoření metody pro předávání dat do formuláře Form2
Klikněte pravým tlačítkem na formulář 2 a výběrem možnosti Zobrazit kód otevřete kód Formuláře2 v editoru.
V kódu Form2 odeberte obsah
Form2_Loadmetody a za metoduForm2_Loadpřidejte následující kód:
internal void LoadOrders(String CustomerID)
{
ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
}
Vytvoření metody ve formuláři Form1 pro předávání dat a zobrazení formuláře Form2
V návrhovém zobrazení formuláře Form1 klikněte pravým tlačítkem myši na mřížku Data zákazníka a pak vyberte Vlastnosti.
V okně Vlastnosti vyberte na horním panelu nástrojů ikonu Události .
Poklikáním na událost DoubleClick otevřete editor kódu.
V editoru kódu aktualizujte definici metody tak, aby odpovídala následující ukázce:
private void customersDataGridView_DoubleClick(object sender, EventArgs e)
{
System.Data.DataRowView SelectedRowView;
NorthwindDataSet.CustomersRow SelectedRow;
SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current;
SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row;
Form2 OrdersForm = new Form2();
OrdersForm.LoadOrders(SelectedRow.CustomerID);
OrdersForm.Show();
}
Spuštění a otestování aplikace
Stisknutím klávesy F5 spusťte aplikaci.
V aplikaci poklikejte na záznam zákazníka ve formuláři Form1 a otevřete formulář 2 s objednávkami daného zákazníka.
Další kroky
V závislosti na požadavcích aplikace můžete po předání dat mezi formuláři provést několik kroků. Mezi vylepšení, která můžete v tomto kurzu provést, patří:
Úprava datové sady pro přidání nebo odebrání databázových objektů Další informace najdete v tématu Vytvoření a konfigurace datových sad.
Přidání funkce pro ukládání dat zpět do databáze Další informace naleznete v tématu Uložení dat zpět do databáze.