Návod: Ukládání dat do databáze (více tabulek)
Jedním z nejběžnější scénáře při vývoji aplikací je zobrazit data ve formuláři v aplikaci systému Windows, upravte údaje a odeslat aktualizovaná data zpět do databáze.Tento průvodce vytvoří formulář, který zobrazuje data ze dvou tabulek a ukazuje, jak upravovat záznamy a uložit změny do databáze.V tomto příkladu Customers a Orders tabulek z ukázkové databáze Northwind.
Můžete uložit data ve vaší aplikaci zpět do databáze voláním Update metodu TableAdapter.Při přetahování položek z zdroje dat okna, kód pro uložení dat je přidána automaticky první tabulky do formuláře.Libovolné další tabulky přidány do formuláře jako vyžadují ruční přidání kódu k uložení dat vyžadováno.Tento průvodce ukazuje, jak přidat kód pro uložení aktualizace z více než jedna tabulka.
[!POZNÁMKA]
Dialogová okna a příkazy nabídek, které vidíte, se mohou lišit od těch popsaných v nápovědě v závislosti na aktivních nastaveních nebo edici.Chcete-li změnit nastavení, zvolte Nastavení importu a exportu v nabídce Nástroje.Další informace naleznete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.
Úlohy v tomto návodu zahrnují:
Vytvoření nového projektu aplikace systému Windows.
Vytváření a konfigurace zdroje dat ve vaší aplikaci s Průvodce konfigurací zdroje dat.
Nastavení položek v ovládací prvky Okno zdroje dat.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.
Vytváření ovládacích prvků vázaných na data přetažením položek z zdroje dat okno do formuláře.
Úprava několika záznamů v obou tabulkách v datové sadě.
Úprava kód, který chcete odeslat aktualizovaná data zpět do databáze v datové sadě.
Požadavky
K dokončení tohoto průvodce, budete potřebovat:
- Přístup k ukázkové databázi Northwind.Další informace naleznete v tématu Postupy: Instalace ukázkových databází.
Vytváření aplikací systému Windows
Prvním krokem je vytvoření aplikace pro systém Windows.Přiřazení názvu k projektu je volitelný v tomto kroku, ale společnost Microsoft bude pojmenujte ji vzhledem k tomu, že jsme se plánování na uložením později.
Vytvoření nového projektu aplikace pro systém Windows
Z soubor nabídky, vytvořte nový projekt.
Název projektu UpdateMultipleTablesWalkthrough.
Vyberte aplikace pro systém Windows a klikněte na tlačítko OK.Další informace naleznete v tématu Vývoj klientských aplikací s použitím rozhraní .NET Framework.
UpdateMultipleTablesWalkthrough je vytvořen a přidán do projektu Průzkumníka řešení.
Vytvoření zdroje dat
Tento krok vytvoří zdroj dat z databáze Northwind pomocí Průvodce konfigurací zdroje dat.Musíte mít přístup k ukázkové databázi Northwind pro vytvoření připojení.Informace o nastavení ukázkové databáze Northwind naleznete v tématu Postupy: Instalace ukázkových databází.
Vytvoření zdroje dat
V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.
V zdroje dat okna, klikněte na tlačítko Přidat nový zdroj dat spustit Průvodce konfigurací zdroje dat.
Vyberte možnost Databáze na stránce Zvolit typ datového zdroje a potom klikněte na tlačítko Další.
Na Vybrat datové připojení proveďte stránky, jeden z následujících akcí:
Pokud je k dispozici v rozevíracím seznamu datové připojení k databázi Northwind ukázky, vyberte jej.
-nebo-
Vyberte nové připojení otevřete Přidat či upravit připojení dialogového okna.
Pokud vaše databáze vyžaduje heslo, vyberte možnost k zahrnutí důvěrných osobních údajů a pak klikněte na tlačítko Další.
Klepněte na tlačítko Next na stránce Uložit připojovací řetězec do konfiguračního souboru aplikace.
Rozbalte uzel Tabulky na stránce Zvolte vaše databázové objekty.
Vyberte Zákazníci a objednávky tabulky a potom klikněte na tlačítko Dokončit.
NorthwindDataSet je přidán do projektu a tabulky se zobrazí v zdroje dat okna.
Nastavení ovládací prvky k vytvoření
V tomto návodu data v Customers tabulky bude v Podrobnosti rozložení, kde data se zobrazí v jednotlivých ovládacích prvků.Data z Orders tabulky bude v mřížky zobrazena v rozložení DataGridView ovládacího prvku.
Chcete-li nastavit typ pro položky v okně zdroje dat
Rozbalit Zákazníci uzel v zdroje dat okna.
Změnit kontrolu Zákazníci tabulky na jednotlivé ovládací prvky výběrem Podrobnosti ze seznamu ovládacího prvku na Zákazníci uzlu.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.
Vytváření vázaného na Data formuláře
Můžete vytvořit ovládací prvky vázání dat přetažením položek z zdroje dat okno do formuláře.
Vytvoření ovládacích prvků vázaných na data ve formuláři
Přetáhněte hlavní Zákazníci uzlu z zdroje dat okna do Form1.
Ve formuláři, spolu s pruh nástrojů jsou zobrazeny vázaného na data ovládací prvky s popisky (BindingNavigator) pro procházení záznamů.Objekt NorthwindDataSet, CustomersTableAdapter, BindingSource, a BindingNavigator se zobrazí na hlavním panelu součásti.
Přetáhněte související objednávky uzlu z zdroje dat okna do Form1.
[!POZNÁMKA]
Související objednávky uzlu se nachází pod Fax sloupec a je podřízený uzel Zákazníci uzlu.
Objekt DataGridView ovládací prvek a pruh nástrojů (BindingNavigator) pro procházení záznamů se zobrazí ve formuláři.OrdersTableAdapter a BindingSource se zobrazí na hlavním panelu součásti.
Přidání kódu k aktualizaci databáze
Můžete aktualizovat databázi voláním Update metody Zákazníci a objednávky TableAdapterů.Ve výchozím nastavení obslužnou rutinu pro BindingNavigatorna Uložit tlačítko přidáno do kódu formuláře na zasílání aktualizací do databáze.Tento postup změní tento kód na zasílání aktualizací ve správném pořadí eliminuje možnost vyvolání chyby referenční integrity.Kód implementuje také obtékání volání aktualizace v bloku try-catch zpracování chyb.Můžete upravit kód podle potřeb vaší aplikace.
[!POZNÁMKA]
V tomto návodu pro přehlednost nepoužívá transakcí, ale při aktualizaci tabulky v relaci dvě nebo více, pak byste měli zahrnout všechny logiku aktualizace v rámci transakce.Transakce je proces, který zajišťuje všechny související změny databáze jsou úspěšné před provedením změny.Další informace naleznete v tématu Transactions and Concurrency.
Chcete-li přidat logiku aktualizace na aplikaci
Klikněte dvakrát Uložit tlačítko na BindingNavigator k otevření editoru kódu do bindingNavigatorSaveItem_Click obslužnou rutinu události.
Nahraďte kód v obslužné rutině volat Update metody související TableAdapterů.Následující kód vytvoří nejprve tři tabulky dočasná data pro uložení aktualizované informace pro každou DataRowState (Deleted, Added, a Modified).Potom aktualizace jsou spouštěny ve správném pořadí.Kód by měl vypadat takto:
Me.Validate() Me.OrdersBindingSource.EndEdit() Me.CustomersBindingSource.EndEdit() Dim deletedOrders As NorthwindDataSet.OrdersDataTable = CType( NorthwindDataSet.Orders.GetChanges(Data.DataRowState.Deleted), NorthwindDataSet.OrdersDataTable) Dim newOrders As NorthwindDataSet.OrdersDataTable = CType( NorthwindDataSet.Orders.GetChanges(Data.DataRowState.Added), NorthwindDataSet.OrdersDataTable) Dim modifiedOrders As NorthwindDataSet.OrdersDataTable = CType( NorthwindDataSet.Orders.GetChanges(Data.DataRowState.Modified), NorthwindDataSet.OrdersDataTable) Try ' Remove all deleted orders from the Orders table. If Not deletedOrders Is Nothing Then OrdersTableAdapter.Update(deletedOrders) End If ' Update the Customers table. CustomersTableAdapter.Update(NorthwindDataSet.Customers) ' Add new orders to the Orders table. If Not newOrders Is Nothing Then OrdersTableAdapter.Update(newOrders) End If ' Update all modified Orders. If Not modifiedOrders Is Nothing Then OrdersTableAdapter.Update(modifiedOrders) End If NorthwindDataSet.AcceptChanges() Catch ex As Exception MsgBox("Update failed") Finally If Not deletedOrders Is Nothing Then deletedOrders.Dispose() End If If Not newOrders Is Nothing Then newOrders.Dispose() End If If Not modifiedOrders Is Nothing Then modifiedOrders.Dispose() End If End Try
this.Validate(); this.ordersBindingSource.EndEdit(); this.customersBindingSource.EndEdit(); NorthwindDataSet.OrdersDataTable deletedOrders = (NorthwindDataSet.OrdersDataTable) northwindDataSet.Orders.GetChanges(DataRowState.Deleted); NorthwindDataSet.OrdersDataTable newOrders = (NorthwindDataSet.OrdersDataTable) northwindDataSet.Orders.GetChanges(DataRowState.Added); NorthwindDataSet.OrdersDataTable modifiedOrders = (NorthwindDataSet.OrdersDataTable) northwindDataSet.Orders.GetChanges(DataRowState.Modified); try { // Remove all deleted orders from the Orders table. if (deletedOrders != null) { ordersTableAdapter.Update(deletedOrders); } // Update the Customers table. customersTableAdapter.Update(northwindDataSet.Customers); // Add new orders to the Orders table. if (newOrders != null) { ordersTableAdapter.Update(newOrders); } // Update all modified Orders. if (modifiedOrders != null) { ordersTableAdapter.Update(modifiedOrders); } northwindDataSet.AcceptChanges(); } catch (System.Exception ex) { MessageBox.Show("Update failed"); } finally { if (deletedOrders != null) { deletedOrders.Dispose(); } if (newOrders != null) { newOrders.Dispose(); } if (modifiedOrders != null) { modifiedOrders.Dispose(); } }
Testování aplikace
Testování aplikace
Stiskněte klávesu F5.
Některé změny dat jeden nebo více záznamů v obou tabulkách.
Stiskněte klávesu Uložit tlačítko.
Zkontrolujte hodnoty v databázi a ověřte, zda byly uloženy změny.
Další kroky
V závislosti na požadavcích aplikace existuje několik kroků, které chcete provést po vytvoření formuláře vázaného na data v aplikaci Windows.Mezi vylepšení, která je možné pro tento návod provést, patří:
Přidání funkce vyhledávání do formuláře.Další informace naleznete v tématu Postupy: Přidání parametrizovaného dotazu do aplikace Windows Forms.
Úprav zdroje dat můžete přidat nebo odebrat databázové objekty.Další informace naleznete v tématu Postupy: Upravování datové sady.
Viz také
Koncepty
Vázání ovládacích prvků Windows Forms k datům v sadě Visual Studio
Příprava vaší aplikace k příjmu dat
Vázání ovládacích prvků k datům v sadě Visual Studio
Upravování dat ve vaší aplikaci