Wskazówki: zapisywanie danych z powiązanych tabel danych (Hierarchiczna aktualizacja)
Zapisywanie danych w aplikacji do bazy danych jest dość prosty, gdy pracujesz z pojedynczej tabeli danych i bez ograniczeń klucza obcego należy rozważyć. Jednak gdy zachodzi potrzeba zapisania danych z zestawu danych, który zawiera dwie lub więcej tabel powiązanych danych, należy wysłać zmiany do bazy danych w określonej kolejności, aby ograniczenia nie są naruszane. Podczas aktualizacji zmodyfikowane dane w tabelach pokrewnych, może dostarczyć logika wyodrębnić określony podzbiór danych z każdej tabeli danych i Wyślij aktualizacje do bazy danych w odpowiedniej kolejności, lub można użyć TableAdapterManager składnika.
W tym instruktażu przedstawiono sposób zapisać powiązane dane za pomocą TableAdapterManager składnika. Zobacz informacje o kodowaniu ręcznie związanych z aktualizacji tabel danych, Wskazówki: zapisywanie danych w bazie danych (wiele tabel).
Wymagania wstępne
Do przeprowadzenia tego instruktażu są potrzebne:
- Dostęp do przykładowej bazy danych Northwind. Aby uzyskać więcej informacji, zobacz Porady: instalacja przykładowych baz danych.
Tworzenie aplikacji opartych na systemie Windows
Pierwszym krokiem w tym instruktażu jest utworzenie nowej aplikacji opartych na systemie Windows.
Do utworzenia nowej aplikacji opartych na systemie Windows
Z menu Plik utwórz nowy projekt.
Uwaga
Aktualizacja hierarchiczne jest obsługiwana w projekty języka Visual Basic i C#, więc utworzyć nowy projekt w jednym z tych języków.
Nazwa projektu HierarchicalUpdateWalkthrough.
Wybierz aplikacji Windows Forms i kliknij przycisk OK. Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji klienta za pomocą programu .NET Framework.
HierarchicalUpdateWalkthrough projektu jest tworzony i dodawany do Solution Explorer.
Tworzenie zestawu danych
Ponieważ potrzebne tabele pokrewne do wykazania hierarchiczne aktualizacje, następnym krokiem jest do tworzenia obiektu dataset 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 uzyskać informacje dotyczące sposobu konfigurowania przykładowej bazy danych Northwind, zobacz Porady: instalacja przykładowych baz danych.
Aby utworzyć zestaw danych
W menu Dane kliknij przycisk Pokaż źródła danych.
W źródła danych okna, kliknij przycisk dodać nowe źródło danych uruchomić Kreatora konfiguracji źródła danych.
Na wybierz typ źródła danych strona, kliknij przycisk bazy danych i kliknij przycisk dalej.
Na Wybieranie połączenia danych Your 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 aby otworzyć Dodaj/Modyfikuj połączenia okno dialogowe.
Jeśli baza danych wymaga podania hasła, wybierz opcję, aby dołączyć dane poufne, a następnie kliknij dalej.
Na stronie Zapisz parametry połączenia do pliku konfiguracji aplikacji kliknij Dalej.
Rozwiń węzeł tabele węzła na wybierz obiekty bazy danych użytkownika strony.
Kliknij pola wyboru dla klienci i zamówień tabel, a następnie kliknij Zakończ.
NorthwindDataSet jest tworzony i dodawany do projektu, a tabele zostaną wyświetlone w źródła danych okna.
Zmienia domyślne formanty powiązane z danymi do utworzenia
Po wypełnieniu źródła danych okna, można wybrać kontrole, jakie mają być tworzone podczas przeciągania elementów do formularza systemu Windows. Dla tego instruktażu będą wyświetlane dane z tabeli Klienci w pojedynczych formantów (szczegóły). Zostaną wyświetlone dane z tabeli zamówienia w DataGridView kontroli (DataGridView).
Aby ustawić kontrolę dla elementów w oknie źródła danych
Rozwiń węzeł klienci węzeł w źródła danych okna.
Zmienić kontrole, jakie mają być tworzone dla klienci tabelę do poszczególnych formantów przez kliknięcie przycisku szczegóły na liście kontroli na 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ówień tabeli użyje domyślnej kontroli DataGridView.
Tworzenie formularza powiązanego z danymi
Po wybraniu formantów w źródła danych okna, tworzyć formanty powiązane z danymi przeciągając elementy na formularzu.
Aby utworzyć formanty powiązane z danymi dla danych klienci i zamówienia
Przeciągnij głównym klienci węzła z źródła danych okna na formularza Form1.
Formanty powiązane z danymi z opisowe etykiety są wyświetlane w formularzu, wraz z TableAdapterManager składnik, pasek narzędzi (BindingNavigator) do nawigowania między rekordami. A typed DataSet, TableAdapter, and a BindingSource, appear in the component tray.
Przeciągnij odnośnych zamówień węzła z źródła danych okna na formularza Form1.
Uwaga
Pokrewne zamówień węzeł znajduje się pod faks węzła tabeli Klienci i jest węzłem podrzędnym węzła klienci węzła.Zamówień węzła, który jest wyświetlany jako elementu równorzędnego do klienci węzeł reprezentuje wszystkie zamówienia z tabeli.Zamówień węzła, który jest wyświetlany jako węzeł podrzędny klienci węzeł reprezentuje powiązane zamówienia.
A DataGridView kontroli i paska narzędzi (BindingNavigator) do nawigowania między rekordami wyświetlane w formularzu. A TableAdapter i BindingSource pojawiają się w zasobniku składnika.
Modyfikowanie wygenerowany Zapisz kod, aby wykonać aktualizację hierarchiczne
Zapisz zmiany z tabel powiązanych danych w zestawie danych do bazy danych przez wywołanie TableAdapterManager.UpdateAll metody i przechodzącej nazwy zestawu danych, który zawiera tabele pokrewne. Na przykład, uruchom TableAdapterManager.UpdateAll(NorthwindDataset) metoda, aby wysyłać aktualizacje ze wszystkich tabel w NorthwindDataset bazy danych zaplecza.
Po upuszczeniu elementy z źródła danych okna, kod zostanie automatycznie dodany do Form_Load zdarzeń do wypełnienia każdej tabeli ( TableAdapter.Fill metody). Kod jest również dodawane do zapisać zdarzenia programu kliknij przycisk BindingNavigator Aby zapisać dane z zestawu danych do bazy danych ( TableAdapterManager.UpdateAll metoda).
Zapisz ten generowany kod również zawiera wiersz kodu wywołuje CustomersBindingSource.EndEdit metody. W szczególności, wywołuje EndEdit Metoda pierwszego BindingSource dodany do formularza. Innymi słowy, ten kod jest generowana tylko pierwszej tabeli przeciągnięte z źródła danych okna na formularzu. EndEdit Wywołanie zatwierdza wszelkie zmiany, które są w trakcie we wszystkich formantach powiązanych 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 metoda).
Uwaga
Projektant umożliwia dodawanie tylko BindingSource.EndEdit kod pierwszej tabeli upuszczany na formularzu.W związku z tym, należy dodać wiersz kodu do wywołania BindingSource.EndEdit metoda dla każdej tabeli pokrewnej w formularzu.Do tego przeglądu, oznacza to, musisz dodać wywołanie OrdersBindingSource.EndEdit metody.
Aby zaktualizować kod, aby zatwierdzić zmiany w tabelach pokrewnych przed zapisaniem
Kliknij dwukrotnie zapisać znajdującego się na BindingNavigator aby otworzyć formularza Form1 w edytorze kodu.
Dodawanie linii kodu do 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 wprowadzania zmian w tabeli podrzędnej pokrewne przed zapisaniem danych do bazy danych, również może mieć do rekordów nadrzędnych zatwierdzanie nowo utworzone przed dodaniem nowe rekordy podrzędne do zestawu danych. Innymi słowy trzeba dodać nowy rekord nadrzędny (klient) do zestawu danych przed ograniczenia na klucz obcy włączyć nowe rekordy podrzędne (zamówienia) mają zostać dodane do zestawu danych. W tym celu można użyć dziecko BindingSource.AddingNew zdarzenia.
Uwaga
Może też 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 dodatkowego kodu, aby zatwierdzić nowy rekord nadrzędny.Jeśli rekordów nadrzędnych były wyświetlane w formancie złożone powiązanie jak DataGridView, dodatkowego EndEdit zadzwonić do rekordu nadrzędnego nie będą konieczne.Jest to spowodowane podstawowych funkcji wiązania danych formantu obsługuje przeznaczania nowych rekordów.
Aby dodać kod do popełnienia rekordów nadrzędnych w zestawie danych przed dodaniem nowe rekordy podrzędne
Tworzenie procedury obsługi zdarzeń dla OrdersBindingSource.AddingNew zdarzenia.
- Open Form1 in design view, click OrdersBindingSource in the component tray, select Events in the Properties window, and then double-click the AddingNew event.
Dodawanie obsługi zdarzeń wiersz kodu wywołuje CustomersBindingSource.EndEdit metody. Kod w OrdersBindingSource_AddingNew programu obsługi zdarzeń powinny być podobne do następujących:
Me.CustomersBindingSource.EndEdit()
this.customersBindingSource.EndEdit();
Sprawdzanie, czy aby hierarchiczną aktualizacje są włączone
Hierarchiczny aktualizacje są włączane i wyłączane przez ustawienie aktualizacja hierarchiczne właściwości zestawu danych. Hierarchiczny aktualizacje są włączone domyślnie, więc dla tego instruktażu nie trzeba zmienić wartość aktualizacja hierarchiczne właściwości.
Aby sprawdzić, czy są włączone aktualizacje hierarchiczne
Otwórz element dataset w Projektant zestawu danych przez dwukrotne kliknięcie NorthwindDataSet.xsd plik w Solution Explorer.
Wybierz pusty obszar na powierzchni projektowej.
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 kod jest generowany z TableAdapterManager i logikę służącą do wykonywania aktualizacji hierarchiczne, czy nie.Setting HierarchicalUpdate to True generates a TableAdapterManager; setting HierarchicalUpdate to False does not generate a TableAdapterManager.
Testowanie aplikacji
Aby przetestować aplikację
Naciśnij F5.
Wprowadzić pewne zmiany w danych jednej lub większej liczby rekordów w każdej tabeli.
Dodawanie nowego klienta, a następnie dodaj nowe zamówienie dla danego klienta.
Kliknij przycisk zapisać przycisk. TableAdapterManager Obsługuje logiki, wymagane dla wszystkich powiązanych z nią aktualizacje.
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 wymagań aplikacji istnieje kilka czynności, które można wykonać po zapisaniu powiązanych danych w aplikacji opartych na systemie Windows. Niektóre rozszerzenia można wprowadzać do tej aplikacji są następujące:
Dodawanie trzecią tabelę, na przykład tabeli SzczegółyZamówień i eksperymentowanie z trzeciej tabeli hierarchii.
Dodając kod sprawdzania poprawności, aby sprawdzić dane spełnia wymagania aplikacji poza ograniczenia bazy 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: wdrażanie hierarchicznej aktualizacji w istniejących projektach Visual Studio
Wskazówki: zapisywanie danych z powiązanych tabel danych (Hierarchiczna aktualizacja)