Udostępnij za pośrednictwem


Hierarchiczny przegląd aktualizacji

Aktualizacja hierarchiczne odnosi się do zapisywania zaktualizowanych danych z zestawu danych, który ma dwa lub więcej tabel powiązanych z powrotem do bazy danych przy jednoczesnym utrzymaniu integralności referencyjnej.Więzy integralności odnosi się do zasad spójności dostarczonych przez ograniczenia klucza obcego w bazie danych, które kontrolują zachowanie Wstawianie, aktualizowanie i usuwanie rekordów pokrewnych.Na przykład jest więzy integralności, która wymusza tworzenie rekordu klienta, przed utworzeniem zamówienia tego klienta.

Podczas tworzenia przez deweloperów aplikacji danych w Visual Studio 2005 i starszych wersjach automatycznie wygenerowany kod zapisany zmienionych danych tylko do pierwszej tabeli przeciągnięte z Źródła danych okna.Podczas przeciągania dodatkowe tabele z Źródła danych okna, użytkownicy musieli ręcznie dodać kod, aby zapisać zmiany w tych tabelach, do bazy danych.Były nie tylko użytkowników wymagane, aby dodać kod do wywołania TableAdapter.Update metody dla każdej tabeli, ale logiki miał należy włączyć do wykonywania szczególnych wstawiania, aktualizacji i usuwania w odpowiedniej kolejności dla każdej tabeli uniemożliwić naruszenie więzów integralności.(Na przykład nowych klientów musi być zapisany przed dodanie ich zamówień i zamówień muszą być usunięte przed usunięciem istniejącego klienta.)

Począwszy od programu Visual Studio 2008, zestawów danych wpisywanych są wzmocnione poprzez nowy TableAdapterManager składnika.TableAdapterManagerzmniejsza kod, który jest wymagany do zapisywania danych w wielu tabelach powiązanych z kilku procedur z wielu linii kodu do wywołania jednej metody: TableAdapterManager.UpdateAll(TypedDataset).TableAdapterManager Zawiera wszystkie podstawowe logiki, która jest wymagana, aby zachować więzy integralności podczas operacji update (Zapisz) między zestawu danych a bazą danych.Aby uzyskać więcej informacji, zobacz Przegląd TableAdapterManager.

Włączanie aktualizacji hierarchicznej w zestawie danych

Domyślnie hierarchiczny aktualizacji jest włączona dla wszystkich nowych zestawów danych, które są dodawane lub zostały utworzone w projekcie.Włączyć lub wyłączyć aktualizację hierarchicznej przez ustawienie Hierarchiczne aktualizacji właściwość maszynowy dataset w Tworzenie i edytowanie wpisanych zestawów danych do True lub False.Aby uzyskać szczegółowe informacje, zobacz Jak: Włączanie i wyłączanie aktualizacji hierarchiczny.

Ograniczenia klucza obcego i kaskadowe uaktualnianie i usuwanie

Jest ważne, aby zrozumieć, jak klucza obcego ograniczeń i kaskadowych zachowanie w bazie danych są tworzone w kod wygenerowany dataset.

Domyślnie, tabele danych w zestawie danych są generowane z relacji (DataRelation) pasują relacje w bazie danych.Relacja w zestawie danych nie jest generowane jako ograniczenia na klucz obcy.DataRelation Jest skonfigurowany jako Relacji tylko bez UpdateRule lub DeleteRule w mocy.

Domyślnie aktualizacje kaskadowe i usuwanie kaskadowe są wyłączone nawet jeżeli relacja bazy danych jest ustawiony z aktualizacji kaskadowych lub kaskadowych usuwa włączona.Na przykład tworzenie nowego nabywcy i nowego zamówienia i próby zapisania danych może powodować konflikt z ograniczenia klucza obcego, zdefiniowane w bazie danych.Aby uzyskać więcej informacji, zobacz Jak: Konfigurowanie ograniczeń klucza obcego w zestawie danych.

Ustawianie kolejności do przeprowadzania aktualizacji

Ustawienie kolejności do wykonywania aktualizacji ustawia kolejność poszczególnych wstawia aktualizacje i usuwa wymaganą do zapisania wszystkich zmodyfikowanych danych we wszystkich tabelach elementu dataset.Hierarchiczny aktualizacji jest włączona, wstawia są wykonywane jako pierwsze, a następnie aktualizuje i usuwa.TableAdapterManager Zawiera UpdateOrder właściwość, która może być zestaw do przeprowadzania aktualizacji, najpierw, a następnie wstawiania i usuwania.

[!UWAGA]

Jest ważne, aby zrozumieć, że porządek aktualizacji jest wszystkich włącznie.Oznacza to gdy aktualizacje są wykonywane, wstawia są wykonywane dla wszystkich tabel w zestawie danych, a następnie aktualizacje są wykonywane dla wszystkich tabel w zestawie danych, a następnie usuwa są wykonywane dla wszystkich tabel w zestawie danych.

Aby ustawić UpdateOrder właściwość po przeciąganie elementów z Okno źródła danych na formularz, kliknij przycisk TableAdapterManager komponentów i zestaw UpdateOrder właściwość w Właściwości okna.Aby uzyskać więcej informacji, zobacz Jak: Ustawianie kolejności podczas wykonywania aktualizacji hierarchiczny.

Tworzenie zestawu danych kopii zapasowej przed wykonaniem aktualizacji hierarchiczny

Podczas zapisywania danych (wywołując TableAdapterManager.UpdateAll() metody), TableAdapterManager próbuje zaktualizować dane dla każdej tabeli w ramach pojedynczej transakcji.Jeśli w żadnej części aktualizacji dla dowolnej tabeli nie powiedzie się, cała transakcja jest cofana.W większości sytuacji wycofywanie transakcji zwraca aplikacji do stanu pierwotnego.Jednak czasami można przywrócić zestaw danych z kopii zapasowej.Jednym z przykładów jest podczas korzystania z automatycznego przyrostu wartości.Na przykład, jeśli zapisywania nie powiedzie się, automatycznego przyrostu wartości nie są resetowane w zestawie danych i obiekt dataset w dalszym ciągu Utwórz autoinkrementacja wartości, pozostawiając luki w numeracji, które mogą nie być akceptowane w aplikacji.W sytuacjach, w przypadku, gdy jest to problem, TableAdapterManager zawiera BackupDataSetBeforeUpdate właściwość, która zastępuje istniejący zestaw danych z kopii zapasowej, jeśli transakcja nie powiedzie się.

[!UWAGA]

Kopia zapasowa jest tylko w pamięci podczas wykonywania TableAdapterManager.UpdateAll metody.W związku z tym, nie jest brak programowy dostęp do tego zestawu kopii zapasowych danych, ponieważ go zastępuje oryginalny zestaw danych lub wykracza poza zakres tak szybko, jak TableAdapterManager.UpdateAll metody zakończy się wykonywanie.

Zobacz też

Zadania

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

Koncepcje

Co nowego w projektowaniu danych aplikacji w Visual Studio 2012

Zapisywanie danych

Przegląd TableAdapterManager

Inne zasoby

Aktualizacja hierarchiczny