Sdílet prostřednictvím


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

Požadavky

K dokončení tohoto návodu budete potřebovat:

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

  1. Z soubor nabídka, vytvoření nového projektu.

  2. Název projektu UpdateMultipleTablesWalkthrough.

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

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

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

  3. Vyberte Databázi na stránce Zvolit datový typ zdrojová databáze a potom klikněte na tlačítko Next.

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

  5. Pokud databáze vyžaduje heslo, vyberte možnost obsahují citlivá data a potom klepněte na tlačítko Další.

  6. Klepněte na tlačítko Další na Uložit řetězec připojení v souboru konfigurace aplikace stránku.

  7. Rozbalte tabulek uzel zvolit databázové objekty stránky.

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

  1. Rozbalte Zákazníci v uzlu 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 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

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

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

  1. Poklepejte Uložit tlačítko na BindingNavigator otevřete Editor kódu bindingNavigatorSaveItem_Click obslužnou rutinu události.

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

  1. Stisknutím klávesy F5.

  2. Některé změny dat jednoho nebo více záznamů v každé tabulce.

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

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

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.

Načítání dat do aplikace

Ovládací prvky vazby na Data v aplikaci Visual Studio

Data v aplikaci pro úpravy

Ověření dat

Ukládání dat

Další zdroje

Data návody

Přehled dat aplikace Visual Studio

Připojení k datům v aplikaci Visual Studio