Udostępnij za pośrednictwem


Instruktaż: Zapisywanie danych z tabel powiązanych danych (aktualizacja hierarchiczne)

Zapisywanie danych w aplikacji z bazą jest dość prosty, gdy użytkownik pracuje z pojedynczej tabeli danych i ograniczeń klucza obcego muszą być uznane za.Jednak gdy zachodzi potrzeba zapisania danych z zestawu danych, który zawiera dwa lub więcej tabel powiązanych danych, musisz wysłać zmiany do bazy danych w określonej kolejności tak, że ograniczenia nie są naruszane.Podczas aktualizacji zmodyfikowane dane w tabelach pokrewnych, można zapewnić programowy logiki do wyodrębnienia określony podzbiór danych z każdej tabeli danych i wysłać aktualizacje do bazy danych w prawidłowej kolejności lub można użyć TableAdapterManager składnika.

W tym instruktażu pokazano, jak zapisać powiązanych danych za pomocą TableAdapterManager składnika.Informacje o kodowaniu ręcznie związanych z aktualizacje tabeli danych patrz, Instruktaż: Zapisywanie danych do bazy danych (wielu tabel).

Wymagania wstępne

Do przeprowadzenia tego instruktażu, potrzebne są:

Tworzenie aplikacji opartych na systemie Windows

Pierwszy krok w tym instruktażu jest utworzenie nowej aplikacji opartych na systemie Windows.

Do tworzenia nowych aplikacji opartych na systemie Windows

  1. Z pliku menu, tworzenie nowego projektu.

    [!UWAGA]

    Hierarchiczna aktualizacja jest obsługiwana w projekty Visual Basic i C#, więc utworzyć nowy projekt w jednym z tych języków.

  2. Nazwa projektu HierarchicalUpdateWalkthrough.

  3. Wybierz Aplikacji Windows Forms i kliknij przycisk OK.Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji klienta.

    HierarchicalUpdateWalkthrough projektu jest tworzony i dodawany do Solution Explorer.

Tworzenie zestawu danych

Ponieważ tabelach pokrewnych w celu wykazania hierarchiczne aktualizacje, należy następnym krokiem jest utworzenie zestawu danych, który zawiera tabele Klienci i zamówienia z bazy danych Northwind.Tworzenie zestawu danych przy użyciu Kreatora konfiguracji źródła danych.Musi mieć dostęp do przykładowej bazy danych Northwind do utworzenia połączenia.Aby uzyskać informacje o sposobach konfigurowania przykładowej bazy danych Northwind, zobacz Jak: Instalowanie przykładowe bazy danych.

Aby utworzyć zestaw danych

  1. Na danych menu, kliknij przycisk Pokaż źródeł danych.

  2. W Źródła danych okna, kliknij Dodać nowe źródło danych uruchomić Kreatora konfiguracji źródła danych.

  3. Na Wybierz typ źródła danych strony, kliknij przycisk bazy danych , a następnie kliknij przycisk Dalej.

  4. Na Wybieranie połączenia danych strony, wykonaj jedną z następujących czynności:

    • Jeśli połączenie danych z przykładowej bazy danych Northwind jest dostępna w polu listy rozwijanej, kliknij go.

      - lub -

    • Kliknij przycisk Nowe połączenie otworzyć Dodawanie i modyfikowanie połączenia okno dialogowe.Aby uzyskać więcej informacji, zobacz Dodawanie/modyfikowanie połączeń, okno dialogowe (Ogólne).

  5. Jeśli baza danych wymaga podania hasła, zaznacz opcję zawierają dane poufne, a następnie kliknij przycisk Dalej.

  6. Kliknij przycisk Dalej na Zapisać plik konfiguracji aplikacji ciąg połączenia strony.

  7. Rozwiń węzeł tabel węzeł na Wybierz obiekty bazy danych użytkownika strony.

  8. Kliknij pola wyboru dla Klienci i zamówienia tabel, a następnie kliknij przycisk Zakończenie.

    NorthwindDataSet jest tworzony i dodawany do projektu, a tabele są wyświetlane w Źródła danych okna.

Zmiana formanty powiązane z danymi domyślny ma zostać utworzony

Po wypełnieniu Źródła danych okna, można wybrać formanty, które ma zostać utworzony podczas przeciągania elementów formularza systemu Windows.Dla tego instruktażu będą wyświetlane dane z tabeli Klienci w poszczególnych formantów (Szczegóły).Dane z tabeli Zamówienia zostaną wyświetlone w DataGridView kontroli (DataGridView).

Aby ustawić kontrolę dla elementów w oknie źródła danych

  1. Rozwiń węzeł Klienci węzeł w Źródła danych okna.

  2. Zmienić formantów ma być utworzony dla Klienci tabeli do poszczególnych formantów, klikając Szczegóły na liście kontroli na Klienci węzła.Aby uzyskać więcej informacji, zobacz Jak: formant ma zostać utworzony podczas przeciągania w oknie źródła danych.

    [!UWAGA]

    Zamówienia tabeli użyje domyślnej kontroli DataGridView.

Tworzenie formularza powiązanego z danymi

Po wybraniu formantów w Źródła danych okna, tworzenie formanty powiązane z danymi, przeciągając elementy na formularzu.

Do tworzenia formantów powiązanych danych dla danych klienci i zamówienia

  1. Przeciągnij główne Klienci węzła z Źródła danych okna na formularz Form1.

    Formanty powiązane z danymi z opisowe etykiety są wyświetlane w formularzu, wraz z TableAdapterManager składnika, pasek narzędzi (BindingNavigator) do nawigowania między rekordami.Pismo DataSet, TableAdapteri BindingSource, są wyświetlane w panelu komponentów.

  2. Przeciągnij odnośnych zamówienia węzła z Źródła danych okna na formularz Form1.

    [!UWAGA]

    Pokrewne zamówienia węzeł znajduje się pod spodem Faks węzeł tabeli Klienci i jest węzeł podrzędny z Klienci węzła.Zamówienia węzeł, który pojawia się jako elementu równorzędnego do Klienci węzeł reprezentuje wszystkie zamówienia w tabeli.Zamówienia węzeł, który jest wyświetlany jako węzeł podrzędny z Klienci węzeł reprezentuje zamówień powiązanych.

    A DataGridView kontroli i paska narzędzi (BindingNavigator) do nawigowania między rekordami wyświetlane w formularzu.A TableAdapter i BindingSource są wyświetlane w panelu komponentów.

Modyfikowanie generowanych Zapisz kod, aby przeprowadzić aktualizację hierarchiczny

Zapisz zmiany z tabel powiązanych danych w zestawie danych do bazy danych, wywołując TableAdapterManager.UpdateAll metody i przekazywanie w nazwie zestawu danych, który zawiera tabele powiązane.Na przykład uruchomić TableAdapterManager.UpdateAll(NorthwindDataset) metodę, aby wysłać aktualizacje ze wszystkich tabel w NorthwindDataset do bazy danych typu back-end.

Po upuszczeniu elementy z Źródła danych okna, kod zostanie automatycznie dodany do Form_Load zdarzenie, aby wypełnić każdej tabeli ( TableAdapter.Fill metod).Kod jest również dodawane do zapisać zdarzenia kliknięcia przycisku BindingNavigator do zapisania danych z zestawu danych z bazą ( TableAdapterManager.UpdateAll metody).

Zapisać wygenerowany kod zawiera także wiersz kodu wywołuje CustomersBindingSource.EndEdit metody.W szczególności, wywołuje EndEdit metody pierwszego BindingSource dodany do formularza.Innymi słowy, ten kod jest generowany tylko w pierwszej tabeli przeciągnięte z Źródła danych okno formularza.EndEdit Wywołania zatwierdza wszelkie zmiany, które są w procesie wszystkie formanty powiązane z danymi, które są obecnie edytowane.W związku z tym, jeśli formant powiązany z danymi nadal ma fokus i użytkownik kliknie zapisać przycisk wszystkie oczekujące zmiany, w tym kontroli są popełnione przed rzeczywiste Zapisz ( TableAdapterManager.UpdateAll metody).

[!UWAGA]

Tylko projektanta BindingSource.EndEdit kod dla pierwszej tabeli przeciągnięte do formularza.W związku z tym, należy dodać wiersz kodu wywołania BindingSource.EndEdit metody dla każdej tabeli pokrewnej w formularzu.Dla tego instruktażu, oznacza to trzeba dodać wywołanie OrdersBindingSource.EndEdit metody.

Aby zaktualizować kod w celu zatwierdzenia zmian w tabelach pokrewnych, przed zapisaniem

  1. Kliknij dwukrotnie zapisać przycisk na BindingNavigator otworzyć formularz Form1 w edytorze kodu.

  2. Dodawanie linii kodu wywołania OrdersBindingSource.EndEdit metoda po linii, która wywołuje CustomersBindingSource.EndEdit metody.Kod w zapisać kliknij przycisk zdarzenia powinny być podobne do następujących:

    Me.Validate()
    Me.CustomersBindingSource.EndEdit()
    Me.OrdersBindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.NorthwindDataSet)
    
    this.Validate();
    this.customersBindingSource.EndEdit();
    this.ordersBindingSource.EndEdit();
    this.tableAdapterManager.UpdateAll(this.northwindDataSet);
    

Oprócz zatwierdzeniem zmian w tabeli podrzędnej powiązanych przed zapisaniem danych z bazą danych, może być również trzeba rekordy nadrzędnej commit nowo utworzone przed dodaniem nowych rekordów podrzędnych do obiektu dataset.Innymi słowy trzeba dodać nowy rekord nadrzędny (klienta) do zestawu danych przed ograniczenia na klucz obcy włączyć nowe rekordy podrzędne (zamówienia) mają zostać dodane do zestawu danych.Aby osiągnąć ten cel, można użyć dziecko BindingSource.AddingNew zdarzenia.

[!UWAGA]

Może lub nie może zatwierdzić nowe rekordy nadrzędnej; To zależy od typu formantu, który jest używany do powiązania ze źródłem danych.W tym instruktażu używać pojedynczych formantów powiązać z tabeli nadrzędnej; wymaga to dodatkowy kod, aby przekazać nowy rekord nadrzędny.Jeśli rekordy nadrzędnej były wyświetlane w formancie złożonych wiążącej jak DataGridView, dodatkowego EndEdit wywołania rekord nadrzędny nie jest konieczne.Wynika to z podstawowych funkcji wiązania danych formantu obsługuje przeznaczania nowych rekordów.

Aby dodać kod do popełnienia nadrzędnej rekordów w zestawie danych przed dodaniem nowe rekordy podrzędne

  1. Utwórz moduł obsługi zdarzenia OrdersBindingSource.AddingNew zdarzenia.

    • Otwórz formularz Form1 w widoku Projekt, kliknij przycisk OrdersBindingSource w panelu komponentów wybierz zdarzenia w Właściwości okna, a następnie kliknij dwukrotnie AddingNew zdarzenia.
  2. Dodaj do procedury obsługi zdarzeń wiersz kodu wywołuje CustomersBindingSource.EndEdit metody.Kod w OrdersBindingSource_AddingNew obsługi zdarzeń powinny być podobne do następujących:

    Me.CustomersBindingSource.EndEdit()
    
    this.customersBindingSource.EndEdit();
    

Sprawdzanie, czy że hierarchiczne aktualizacje są włączone

Hierarchiczna aktualizacje są włączane i wyłączane przez ustawienie Aktualizacja hierarchiczne właściwości obiektu dataset.Hierarchiczna aktualizacje są domyślnie włączone, aby dla tego instruktażu nie musiał zmienić wartość Aktualizacja hierarchiczne właściwości.

Aby sprawdzić, czy są włączone aktualizacje hierarchiczny

  1. Otwórz element dataset w Projektant Dataset przez dwukrotne kliknięcie NorthwindDataSet.xsd pliku w Solution Explorer.

  2. Wybierz pusty obszar na powierzchni projektu.

  3. Zlokalizuj Aktualizacja hierarchiczne właściwość w Okno właściwości i sprawdź, czy jest ustawiona True.

    [!UWAGA]

    Aktualizacja hierarchiczne ustawienie właociwooci jest, co określa, czy generowany jest kod TableAdapterManager i logiki do przeprowadzania aktualizacji hierarchiczne, czy nie.Ustawienie HierarchicalUpdate do True generuje TableAdapterManager; ustawienie HierarchicalUpdate do False nie generuje TableAdapterManager.

Testowanie aplikacji

Aby przetestować aplikację

  1. Naciśnij klawisz F5.

  2. Niektóre zmiany do danych z jednego lub wielu rekordów w każdej tabeli.

  3. Dodawanie nowego klienta, a następnie dodaj nowe zamówienie dla tego klienta.

  4. Kliknij przycisk zapisać przycisku.TableAdapterManager Obsługuje logika wymagane dla wszystkich powiązanych aktualizacji.

  5. Sprawdź wartości w bazie danych, aby zweryfikować, że zmiany zostały zapisane w każdej tabeli.

Następne kroki

W zależności od wymagań aplikacji istnieje kilka kroków, które chcesz wykonać po zapisaniu powiązanych danych w aplikacji opartych na systemie Windows.Oto niektóre rozszerzenia, które mogłoby się przyczynić do tej aplikacji:

  • Dodawanie trzecią tabelę, na przykład tabeli SzczegółyZamówień i eksperymentowanie z trzech tabeli hierarchii.

  • Dodawanie kod sprawdzania poprawności, aby sprawdzić, że dane spełnia wymagania aplikacji, oprócz ograniczenia do bazy danych.Aby uzyskać więcej informacji, zobacz Sprawdzanie poprawności danych.

Zobacz też

Zadania

Jak: Konfigurowanie ograniczeń klucza obcego w zestawie danych

Jak: Ustawianie kolejności podczas wykonywania aktualizacji hierarchiczny

Jak: Zatwierdź W trakcie edycji na formanty powiązane dane przed zapisaniem danych

Jak: wdrożenie aktualizacji hierarchicznej w istniejących projektów Visual Studio

Instruktaż: Zapisywanie danych z tabel powiązanych danych (aktualizacja hierarchiczne)

Koncepcje

Zapisywanie danych

Inne zasoby

Aktualizacja hierarchiczny

DataSets in ADO.NET