Předávání dat mezi formuláři
Publikováno: srpen 2016
Tento návod obsahuje podrobné pokyny pro předávání dat z jednoho formuláře. Pomocí zákazníci a objednávky tabulek z jednoho formuláře Northwind vám umožní uživatelům vybrat zákazníka a druhý formulář zobrazí objednávky vybraného zákazníka. Tento návod ukazuje, jak vytvořit metodu na jeden formulář, který přijímá data z první formulář.
Poznámka
Tento návod ukazuje pouze jeden způsob předávání dat mezi formuláři. Existují další možnosti pro předání dat do formuláře, včetně těchto přístupů: můžete vytvořit druhý konstruktor přijímat data, nebo můžete vytvořit veřejné vlastnosti, kterou lze nastavit s daty z první formuláře.
Úlohy v tomto návodu zahrnují:
Vytvoření nového aplikace Windows projektu.
Vytváření a konfigurace datové sady pomocí Průvodce konfigurací zdroje dat.
Výběr ovládacího prvku, který má být vytvořen ve formuláři při přetahování položek z zdroje dat okna. Další informace naleznete v tématu Postupy: Nastavení ovládacího prvku, který má být vytvořen při přetažení z okna zdrojů dat.
Vytvoření ovládacího prvku vázané na data přetažením položek z zdroje dat okna do formuláře.
Druhý k vytvoření mřížky zobrazit data.
Vytváření dotazu TableAdapter načíst objednávky pro konkrétního zákazníka.
Předávání dat mezi formuláři.
Požadavky
Chcete-li dokončit tento návod, potřebujete:
- Přístup k ukázkové databázi Northwind. Další informace naleznete v tématu Postupy: Instalace ukázkových databází.
Vytvoření aplikace pro Windows
Vytvoření nového projektu Windows
Z soubor nabídky, vytvořte nový projekt.
Název projektu
PassingDataBetweenForms
.Vyberte aplikace Windows Forms a klikněte na tlačítko OK. Další informace naleznete v tématu Klientské aplikace.
PassingDataBetweenForms je vytvořen a přidán do projektu Průzkumníku řešení.
Vytváření zdroje dat
Vytvoření zdroje dat
Na Data nabídky, klikněte na tlačítko Zobrazit zdroje dat.
V zdroje dat vyberte Přidat nový zdroj dat ke spuštění Průvodce konfigurací zdroje dat.
Vyberte databáze na Zvolte typ zdroje dat a potom klikněte na tlačítko Další.
Na Vyberte databázový model ověřte, že datovou sadu je zadán a potom klikněte na tlačítko Další.
Na Vybrat datové připojení proveďte jednu z následujících akcí:
Pokud připojení dat k ukázkové databázi Northwind k dispozici v rozevíracím seznamu, vyberte ji.
- nebo -
Vyberte nové připojení ke spuštění Přidat nebo upravit připojení dialogové okno.
Pokud vaše databáze vyžaduje heslo, a pokud je povolena možnost obsahují citlivá data, vyberte možnost a potom klikněte na tlačítko Další.
Klikněte na tlačítko Další na Uložit připojovací řetězec do konfiguračního souboru aplikace stránky.
Rozbalte tabulky uzel na Zvolte vaše databázové objekty stránky.
Vyberte Zákazníci a objednávky tabulky a pak klikněte na tlačítko Dokončit.
NorthwindDataSet je přidán do projektu a Zákazníci a tabulky objednávek se zobrazí v zdroje dat okna.
Vytvoření první formuláře (Form1)
Můžete vytvořit mřížku vázaných na data ( DataGridView ovládací prvek) přetažením Zákazníci uzlu z zdroje dat okna do formuláře.
Chcete-li vytvořit mřížky vázaných na data ve formuláři
Přetáhněte hlavní Zákazníci uzlu z zdroje dat okna do Form1.
A DataGridView a pruh nástrojů (BindingNavigator) pro procházení záznamů se zobrazí na Form1. A NorthwindDataSet, CustomersTableAdapter, BindingSource, a BindingNavigator v panelu komponent se zobrazí.
Vytváření druhé formuláře (Form2)
Chcete-li vytvořit druhý formulář k předání dat do
Z projektu nabídce zvolte formulář Windows přidat.
Ponechejte výchozí název Form2 a klikněte na tlačítko Přidat.
Přetáhněte hlavní objednávky uzlu z zdroje dat okna do Form2.
A DataGridView a pruh nástrojů (BindingNavigator) pro procházení záznamů se zobrazí na Form2. A NorthwindDataSet, CustomersTableAdapter, BindingSource, a BindingNavigator v panelu komponent se zobrazí.
Odstranit OrdersBindingNavigator z panelu komponent.
OrdersBindingNavigator zmizí z Form2.
Přidání dotazu TableAdapter Form2 načíst objednávek pro vybraného zákazníka na Form1
K vytvoření dotazu TableAdapter
Dvakrát klikněte NorthwindDataSet.xsd souboru v Průzkumníku řešení.
Klikněte pravým tlačítkem myši OrdersTableAdapter a vyberte Přidat dotaz.
Ponechejte výchozí možnost pomocí SQL příkazy, a potom klikněte na tlačítko Další.
Ponechejte výchozí možnost Vyberte, které vrací řádky, a potom klikněte na tlačítko Další.
Přidejte klauzuli WHERE dotazu k vrácení
Orders
na základěCustomerID
. Dotaz by měl být podobný následujícímu:SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Poznámka
Ověřte syntaxi správný parametr pro vaši databázi. Například v aplikaci Microsoft Access klauzule WHERE bude vypadat:
WHERE CustomerID = ?
.Klikněte na tlačítko Další.
Pro vyplnění DataTablenázev metody, typ
FillByCustomerID
.Vymazat vrátit objekt DataTable možnost a potom klikněte na tlačítko Další.
Klikněte na tlačítko Dokončit.
Vytváření metodu na Form2 předání dat
Chcete-li vytvořit metodu k předání dat
Klikněte pravým tlačítkem na Form2 a vyberte Zobrazit kód otevřete Form2 v Editor kódu.
Přidejte následující kód do Form2 po
Form2_Load
Metoda:internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
Vytváření metodu na Form1 průchod dat a zobrazení Form2
Vytvoření metody data předat Form2
V Form1, klikněte pravým tlačítkem na mřížky dat zákazníka a klikněte na Vlastnosti.
V Vlastnosti okna, klikněte na tlačítko události.
Dvakrát klikněte CellDoubleClick událostí.
Zobrazí se editor 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(); }
Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick Dim SelectedRowView As Data.DataRowView Dim SelectedRow As NorthwindDataSet.CustomersRow SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView) SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow) Dim OrdersForm As New Form2 OrdersForm.LoadOrders(SelectedRow.CustomerID) OrdersForm.Show() End Sub
Spuštění aplikace
Ke spuštění aplikace
Stisknutím klávesy F5 ke spuštění aplikace.
Klikněte dvakrát na záznam zákazníka v Form1 otevřete Form2 s objednávek tohoto zákazníka.
Další kroky
V závislosti na požadavcích aplikace existuje několik kroků, které chcete provádět po předávání dat mezi formuláři. Mezi vylepšení, která by mohla pro tento návod provést, patří:
Úpravy datové sady, přidání nebo odebrání databázové objekty. Další informace naleznete v tématu Vytvoření a konfigurace datové sady.
Přidání funkce k uložení dat zpět do databáze. Další informace naleznete v tématu Uložit data do databáze.
Viz také
Vytvoření vazby ovládacích prvků Windows Forms k datům v sadě Visual Studio