Názorný postup: Ukládání dat do databáze (více tabulek)
Jedním z nejběžnějších scénářů vývoji aplikací je zobrazení dat ve formuláři v aplikaci Windows data upravit a odeslat aktualizovaná data zpět do databáze.Tento názorný postup vytvoří formulář, který zobrazuje data ze dvou tabulek a ukazuje, jak upravovat záznamy a uložit změny databáze.V tomto příkladu Customers a Orders tabulek z ukázkové databáze Northwind.
Data můžete uložit zpět do databáze aplikace voláním Update metodu TableAdapter.Při přetažení položky Zdroje dat okno kód uložit data pro první tabulky, které jsou umístěny na formuláři automaticky přidán.Libovolné další tabulky přidat do formuláře vyžadují ruční přidání kódu potřebný pro uložení dat.Tento názorný postup ukazuje, jak přidat kód uložte aktualizací z více než jedné tabulky.
[!POZNÁMKA]
Dialogová okna a příkazy v nabídkách menu, které vidíte, se mohou lišit od těch popsaných v nápovědě, v závislosti na vašich aktivních nastaveních nebo edici.Chcete-li změnit nastavení, zvolte Import and Export Settings v menu Nástroje.Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Úlohy v tomto návodu zahrnují:
Vytvoření nového Aplikace systému Windows projektu.
Vytváření a konfiguraci zdroje dat v aplikaci Průvodce konfigurací zdroje dat.
Řídí položky Okno zdroje dat.Další informace naleznete v tématu Jak: nastavení řízení má být vytvořen při přetažení z okno zdroje dat.
Vytvoření ovládací prvky vázané na data přetažením položek z Zdroje dat okna, do formuláře.
Úprava vyzkoušeli záznamů v každé tabulce v objektu dataset.
Změna kódu objekt dataset odeslat aktualizovaná data zpět do databáze.
Požadavky
K dokončení tohoto návodu budete potřebovat:
- Přístup k ukázkové databázi Northwind.Další informace naleznete v tématu Jak: Instalace ukázkové databáze.
Vytvoření aplikace pro Windows
Prvním krokem je vytvoření Aplikace systému Windows.Přiřazení názvu projektu je volitelný v tomto kroku, ale jsme bude nazvěte ji protože jsme plánování na uložení později.
Vytvořit nový projekt aplikace systému Windows
Z soubor nabídka, vytvoření nového projektu.
Název projektu UpdateMultipleTablesWalkthrough.
Vyberte Aplikace systému Windows a na OK.Další informace naleznete v tématu Tvorba klientských aplikací.
UpdateMultipleTablesWalkthrough projektu je vytvořena a přidána do Aplikaci Solution Explorer.
Vytváření zdroje dat
Tento krok vytvoří zdroj dat z databáze Northwind pomocí Průvodce konfigurací zdroje dat.Musí mít přístup k vytvoření připojení ukázkové databáze Northwind.Informace o nastavení ukázkové databáze Northwind, Jak: Instalace ukázkové databáze.
Vytvořit zdroj dat
V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.
V Zdroje dat okna, klepněte na tlačítko Přidat nový zdroj dat spustit Průvodce konfigurací zdroje dat.
Vyberte Databázi na stránce Zvolit datový typ zdrojová databáze a potom klikněte na tlačítko Next.
Na Zvolte datové připojení stránky proveďte jeden z následujících:
Pokud datové připojení k ukázkové databázi Northwind je k dispozici v rozevíracím seznamu, vyberte ji.
-nebo-
Vyberte Nové připojení otevřete Přidat nebo změnit připojení dialogové okno.Další informace naleznete v tématu Přidat či upravte dialogové okno připojení (Obecné).
Pokud databáze vyžaduje heslo, vyberte možnost obsahují citlivá data a potom klepněte na tlačítko Další.
Klepněte na tlačítko Další na Uložit řetězec připojení v souboru konfigurace aplikace stránku.
Rozbalte tabulek uzel zvolit databázové objekty stránky.
Vyberte Zákazníci a objednávky tabulky a pak klepněte na tlačítko Dokončit.
NorthwindDataSet je přidán do projektu a v tabulkách Zdroje dat okna.
Nastavení ovládacích prvků, které mají být vytvořeny.
Pro tento návod data v Customers tabulky bude v Podrobnosti rozložení, kde jsou data zobrazena v jednotlivých ovládacích prvků.Data z Orders tabulky bude v mřížky zobrazena v rozložení DataGridView řízení.
Nastavení typu přetažení položek v okně zdroje dat
Rozbalte Zákazníci v uzlu 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 uzel.Další informace naleznete v tématu Jak: nastavení řízení má být vytvořen při přetažení z okno zdroje dat.
Vytváření formuláře vázán na Data
Ovládací prvky vázané dat můžete vytvořit přetažením položek z Zdroje dat okna, do formuláře.
Vytvořit data vázané ovládací prvky formuláře
Přetáhněte hlavní Zákazníci z uzlu Zdroje dat okna do Form1.
Ve formuláři spolu s pruh nástrojů se zobrazí ovládací prvky vázané na data s popisky (BindingNavigator) pro procházení záznamů.A NorthwindDataSet, CustomersTableAdapter, BindingSource, a BindingNavigator se zobrazují na hlavním panelu komponenty.
Přetáhněte související objednávky z uzlu Zdroje dat okna do Form1.
[!POZNÁMKA]
Související objednávky uzel je umístěn pod Fax sloupec a je podřízený uzel Zákazníci uzel.
A DataGridView řízení a pruh nástrojů (BindingNavigator) pro procházení záznamů se zobrazí ve formuláři.OrdersTableAdapter a BindingSource se zobrazují na hlavním panelu komponenty.
Přidání kódu k aktualizaci databáze
Můžete aktualizovat databázi voláním Update metod Zákazníci a objednávky TableAdapters.Ve výchozím nastavení obslužnou rutinu události pro BindingNavigatorna Uložit kódu formuláře odesílat aktualizace databáze je přidáno tlačítko.Tento postup upravuje kód odesílat aktualizace ve správném pořadí vyloučit možnost zvýšení referenční integrity chyby.Kód také implementuje pomocí volání aktualizace obtékání v bloku try-catch zpracování chyb.Můžete změnit kód tak, aby vyhovovala potřebám příslušné aplikace.
[!POZNÁMKA]
Z důvodu srozumitelnosti tohoto postupu nepoužívá transakce, ale pokud aktualizujete dvě nebo více souvisejících tabulek, pak byste měli zahrnout logika aktualizace v rámci transakce.Transakce je proces, který zajišťuje všechny související změny v databázi jsou úspěšné před provedením změny.Další informace naleznete v tématu Performing Transactions.
Přidání aktualizace logiku aplikace
Poklepejte Uložit tlačítko na BindingNavigator otevřete Editor kódu bindingNavigatorSaveItem_Click obslužnou rutinu události.
Nahradit kód v obslužné rutině události volání Update metody související TableAdapters.Následující kód vytvoří nejprve tři dočasné datové tabulky pro aktualizované informace pro každou DataRowState (Deleted, Added, a Modified).Potom se aktualizace provádě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
Stisknutím klávesy F5.
Některé změny dat jednoho nebo více záznamů v každé tabulce.
Stiskněte Uložit tlačítko.
Zkontrolujte hodnoty v databázi, ověřte, že změny nebyly uloženy.
Další kroky
V závislosti na požadavcích aplikace existuje několik kroků, které chcete provést po vytvoření formuláře vázán na data v aplikaci pro systém Windows.Některá vylepšení, které nelze provést tento návod obsahuje:
Přidání funkce vyhledávacího formuláře.Další informace naleznete v tématu Jak: parametrický dotaz přidat do aplikace model Windows Forms.
Úpravy zdroje dat přidat nebo odstranit objekty databáze.Další informace naleznete v tématu Jak: upravit objekt Dataset.
Viz také
Koncepty
Novinky ve vývoji datových aplikací v sadě Visual Studio 2012
Vazba na Data v aplikaci Visual Studio model Windows Forms prvky
Příprava aplikace pro příjem dat.
Ovládací prvky vazby na Data v aplikaci Visual Studio