Udostępnij za pośrednictwem


Wskazówki: zapisywanie danych z powiązanych tabel danych (Hierarchiczna aktualizacja)

Trwa zapisywanie danych w aplikacji z powrotem do bazy danych jest względnie prostą podczas pracy z pojedynczej tabeli danych i bez ograniczeń klucza obcego musi być brany pod uwagę.Ale jeśli musisz zapisać danych z zestawu danych, która zawiera co najmniej dwie tabele powiązane dane, należy wysłać zmiany do bazy danych w określonej kolejności, aby nie naruszenia ograniczenia.Podczas aktualizacji modyfikacji danych w powiązanych tabelach, można podać logika wyodrębnić określony podzbiór danych z każdej tabeli danych i wysyłanie aktualizacji do bazy danych w poprawnej kolejności lub można użyć TableAdapterManager składników.

Niniejszy przewodnik pokazuje, jak zapisać dane dotyczące przy użyciu TableAdapterManager składników.Informacje o kodowaniu aktualizacji tabeli danych dotyczących ręcznie można znaleźć, Wskazówki: zapisywanie danych w bazie danych (wiele tabel).

Wymagania wstępne

Aby ukończyć tej procedury, należy:

Tworzenie aplikacji opartych na systemie Windows

Jest pierwszym krokiem w tej procedury do utworzenia nowej aplikacji opartych na systemie Windows.

Aby utworzyć nową aplikację systemu Windows

  1. Z pliku menu, Utwórz nowy projekt.

    [!UWAGA]

    Aktualizacja hierarchiczne jest obsługiwana w projektach Visual Basic i C#, więc Utwórz nowy projekt w jednym z tych języków.

  2. Nadaj nazwę projektowi HierarchicalUpdateWalkthrough.

  3. Wybierz aplikacji programu Windows Forms i kliknij przycisk OK.Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji klienta za pomocą programu .NET Framework.

    HierarchicalUpdateWalkthrough projektu zostało utworzone i dodane do Eksploratora rozwiązań.

Tworzenie zestawu danych

Ponieważ konieczne jest powiązane tabele, aby zademonstrować hierarchiczne aktualizacje, następnym krokiem jest tworzenie zestawu danych zawierającego tabele Klienci i zamówienia z bazy danych Northwind.Tworzenie zestawu danych przy użyciu Kreatora konfiguracji źródła danych.Musisz mieć dostęp do przykładowej bazy danych Northwind do utworzenia połączenia.Aby dowiedzieć się, jak skonfigurować w bazie danych Northwind, zobacz Porady: instalacja przykładowych baz danych.

Aby utworzyć zestaw danych

  1. W menu Dane kliknij przycisk Pokaż źródła danych.

  2. W źródła danych okna, kliknij przycisk Dodaj nowe źródło danych można uruchomić Kreatora konfiguracji źródła danych.

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

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

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

      —lub—

    • Kliknij przycisk nowe połączenie można otworzyć Dodaj/Modyfikuj połączenia okno dialogowe.

  5. Jeśli baza danych wymaga hasła, wybierz opcję, aby dołączyć dane poufne, a następnie kliknij przycisk Dalej.

  6. Kliknij przycisk Dalej na zapisać ciąg połączenia do pliku konfiguracji aplikacji strony.

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

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

    NorthwindDataSet zostało utworzone i dodane do projektu, a tabele są wyświetlane w źródła danych okna.

Zmiana formantów powiązanych z danymi domyślny do utworzenia

Po wypełnieniu źródła danych okna, można wybrać służy do utworzenia podczas przeciągania elementów do formularza systemu Windows.Dla tej procedury dane z tabeli Klienci będą wyświetlane w pojedynczymi formantami (Szczegóły).Dane z tabeli zamówienia będzie wyświetlana w DataGridView kontroli (DataGridView).

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

  1. Rozwiń węzeł klienci w węźle źródła danych okna.

  2. Zmień służy do utworzenia dla klienci tabela, która ma pojedynczymi formantami, klikając Szczegóły na liście kontroli klienci węzła.Aby uzyskać więcej informacji, zobacz Porady: ustawianie formantu do utworzenia podczas przeciągania z okna źródła danych.

    [!UWAGA]

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

Tworzenie formularza powiązanym z danymi

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

Aby utworzyć formantów powiązanych z danymi dla danych klienci i zamówienia

  1. Przeciągnij głównym klienci węzła z źródła danych okna na Form1.

    Formanty powiązane dane z opisowe etykiety są widoczne w formularzu, wraz z TableAdapterManager składników, paska narzędzi (BindingNavigator) nawigacji rekordów.Typizowaną zestawu danych, Obiekt TableAdapter, i BindingSource, są wyświetlane na pasku składnika.

  2. Przeciągnij pokrewny zamówienia węzła z źródła danych okna na Form1.

    [!UWAGA]

    Pokrewne zamówienia węzeł znajduje się pod faksu węzła tabeli Klienci i jest węzeł podrzędny klienci węzła.Zamówienia węzeł, który jest wyświetlany jako element równorzędny do klienci węzeł reprezentuje wszystkie zamówienia w tabeli.Zamówienia węzeł, który jest wyświetlany jako węzeł podrzędny klienci węzeł reprezentuje powiązane zamówienia.

    Element DataGridView paska narzędzi i kontroli (BindingNavigator) do nawigowania między rekordami są widoczne w formularzu.Element Obiekt TableAdapter i BindingSource są widoczne na pasku składnika.

Modyfikowanie wygenerowanego zapisać kod w celu przeprowadzenia aktualizacji hierarchiczne

Zapisz zmiany z tabel powiązanych danych w zestawie danych do bazy danych przez wywołanie metody TableAdapterManager.UpdateAll metody i przekazywanie nazwę zestawu danych, która zawiera powiązane tabele.Na przykład, uruchom TableAdapterManager.UpdateAll(NorthwindDataset) metodę w celu wysłania aktualizacji z wszystkie tabele w NorthwindDataset do wewnętrznej bazy danych.

Po usunąć elementy z źródła danych oknie kodu jest automatycznie dodawane do Form_Load zdarzenia w celu wypełnienia każdej tabeli ( TableAdapter.Fill metody).Kod jest również dodawane do zapisać zdarzenia kliknij przycisk BindingNavigator można zapisać danych z zestawu danych do bazy danych ( TableAdapterManager.UpdateAll metody).

Zapisz wygenerowany kod zawiera także wiersz kodu, który wywołuje CustomersBindingSource.EndEdit metody.W szczególności wywołuje EndEdit metody pierwszego BindingSource dodany do formularza.Innymi słowy, ten kod został wygenerowany tylko pierwszej tabeli przeciągnąć z źródła danych okna na formularzu.EndEdit Wszystkie zmiany, które są w trakcie w formantów powiązanych z danymi, które są aktualnie edytowane zatwierdzeń połączenia.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ą wykonywane przed rzeczywiste zapisywanie ( TableAdapterManager.UpdateAll metody).

[!UWAGA]

Projektant tylko dodaje BindingSource.EndEdit Kod pierwszej tabeli usunięty na formularzu.W związku z tym, należy dodać wiersz kodu, aby wywołać BindingSource.EndEdit metody dla każdego powiązanej tabeli na formularzu.W przypadku tej procedury, oznacza to, należy dodać wywołanie OrdersBindingSource.EndEdit metody.

Aby zaktualizować kodu, aby zatwierdzić zmiany powiązane tabele przed zapisaniem

  1. Kliknij dwukrotnie zapisać znajdującego się na BindingNavigator można otworzyć Form1 w edytorze kodu.

  2. Dodaj wiersz kodu, aby wywołać OrdersBindingSource.EndEdit metody po wiersza, który wywołuje CustomersBindingSource.EndEdit metody.Kod w zapisać kliknij przycisk zdarzenia powinien być podobny do tego:

    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 zatwierdzania zmian w tabeli podrzędnej pokrewne przed zapisaniem danych do bazy danych, również może mieć rekordów w grupie nadrzędnej zatwierdzania nowo utworzony przed dodaniem nowych rekordów podrzędnych do zestawu danych.Innymi słowy trzeba będzie dodać nowy rekord nadrzędny (klient) z zestawem danych przed ograniczeń klucza obcego włączyć nowe podrzędne rekordy (zamówienia) mają zostać dodane do zestawu danych.Aby to zrobić, można użyć podrzędne BindingSource.AddingNew zdarzenia.

[!UWAGA]

Może lub nie może być konieczne Zatwierdź nowych rekordów nadrzędnego; jest ona zależna od typu formantu, który jest używany do powiązania ze źródłem danych.W tym przykładzie używamy pojedynczymi formantami utworzenie powiązania z tabelą nadrzędną; wymaga to dodatkowego kodu można zatwierdzić nowy rekord nadrzędny.Jeśli rekordów nadrzędnych były wyświetlane w formancie powiązania złożonych, takich jak DataGridView, dodatkowego EndEdit wywołać dla rekord nadrzędny nie jest konieczne.Jest to spowodowane podstawowe funkcje wiązania danych formantu obsługuje zatwierdzania nowych rekordów.

Aby dodać kod, aby zatwierdzić przed dodaniem nowych rekordów podrzędnych rekordów nadrzędnych w zestawie danych

  1. Utwórz program obsługi zdarzeń dla OrdersBindingSource.AddingNew zdarzenia.

    • Otwórz Form1 w widoku projektu, kliknij przycisk OrdersBindingSource na pasku składnika wybierz zdarzenia w właściwości okna, a następnie kliknij go dwukrotnie AddingNew zdarzenia.
  2. Dodaj do obsługi zdarzeń wiersz kodu, który wywołuje CustomersBindingSource.EndEdit metody.Kod w OrdersBindingSource_AddingNew obsługi zdarzeń powinien być podobny do tego:

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

Sprawdzanie, czy aktualizacje hierarchiczne czy są włączone.

Hierarchiczne aktualizacje są włączone i wyłączanie funkcji przez ustawienie hierarchiczne aktualizacji właściwości zestawu danych.Domyślnie są włączone hierarchiczne aktualizacje dla tej procedury należy więc nie można zmienić wartość hierarchiczne aktualizacji właściwości.

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

  1. Otwórz w zestawie danych Designer zestawu danych klikając dwukrotnie NorthwindDataSet.xsd pliku w Eksploratora rozwiązań.

  2. Wybierz pusty obszar na powierzchnię projektową.

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

    [!UWAGA]

    Hierarchiczne aktualizacji ustawienie właściwości jest, co określa, czy kod jest generowana za pomocą TableAdapterManager i logiki do przeprowadzania aktualizacji hierarchiczne, czy nie.Ustawienie HierarchicalUpdate do True generuje TableAdapterManagerustawieniem HierarchicalUpdate do False nie generuje TableAdapterManager.

Testowanie aplikacji

Aby przetestować aplikację

  1. Naciśnij F5.

  2. Niektóre zmiany do danych jednego lub większej liczby rekordów w każdej tabeli.

  3. Dodawanie nowych klientów, a następnie dodaj nowe zamówienie dla danego klienta.

  4. Kliknij przycisk zapisać przycisku.TableAdapterManager Obsługuje logiki wymagany dla wszystkich powiązanych z nią aktualizacji.

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

Następne kroki

W zależności od potrzeb aplikacji istnieje kilka kroków, które chcesz wykonać po zapisaniu powiązane dane w aplikacji opartych na systemie Windows.Oto kilka rozszerzeń, które mogą tworzyć w tej aplikacji:

  • Dodawanie trzeciej tabeli, takich jak tabeli SzczegółyZamówień i wykorzystywanie hierarchii trzeciej tabeli.

  • Dodawanie kodu sprawdzania poprawności można zweryfikować danych spełnia wymagania aplikacji, oprócz ograniczeń w bazie danych.Aby uzyskać więcej informacji, zobacz Sprawdzanie poprawności danych.

Zobacz też

Zadania

Porady: konfigurowanie ograniczeń obcego klucza w zestawie danych

Porady: ustawianie kolejności podczas przeprowadzania hierarchicznej aktualizacji

Porady: przeprowadzanie edycji wewnątrzprocesowych na formantach powiązanych z danym przed zapisaniem danych

Porady: wdrażanie hierarchicznej aktualizacji w istniejących projektach Visual Studio

Wskazówki: zapisywanie danych z powiązanych tabel danych (Hierarchiczna aktualizacja)

Koncepcje

Zapisywanie danych

Inne zasoby

Hierarchiczna aktualizacja

DataSets, DataTables, and DataViews