Sdílet prostřednictvím


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í:

Požadavky

K dokončení tohoto průvodce, budete potřebovat:

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

  1. Z soubor nabídky, vytvořte nový projekt.

  2. Název projektu UpdateMultipleTablesWalkthrough.

  3. 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

  1. V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.

  2. V zdroje dat okna, klikněte na tlačítko Přidat nový zdroj dat spustit Průvodce konfigurací zdroje dat.

  3. Vyberte možnost Databáze na stránce Zvolit typ datového zdroje a potom klikněte na tlačítko Další.

  4. 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.

  5. 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ší.

  6. Klepněte na tlačítko Next na stránce Uložit připojovací řetězec do konfiguračního souboru aplikace.

  7. Rozbalte uzel Tabulky na stránce Zvolte vaše databázové objekty.

  8. 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

  1. Rozbalit Zákazníci uzel v zdroje dat okna.

  2. 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

  1. 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.

  2. 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

  1. Klikněte dvakrát Uložit tlačítko na BindingNavigator k otevření editoru kódu do bindingNavigatorSaveItem_Click obslužnou rutinu události.

  2. 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

  1. Stiskněte klávesu F5.

  2. Některé změny dat jeden nebo více záznamů v obou tabulkách.

  3. Stiskněte klávesu Uložit tlačítko.

  4. 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ří:

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

Načítání dat do vaší aplikace

Vázání ovládacích prvků k datům v sadě Visual Studio

Upravování dat ve vaší aplikaci

Ověřování dat

Ukládání dat

Další zdroje

Návody k datům

Přehled datových aplikacích v sadě Visual Studio

Připojení k datům v sadě Visual Studio