Sdílet prostřednictvím


Hierarchický přehled aktualizace

Hierarchické aktualizace se vztahuje k ukládání aktualizovaných dat z objektu dataset, který má dva nebo více souvisejících tabulek, zpět do databáze při zachování referenční integrity.Referenční integrita se týká pravidel konzistence, omezení cizího klíče v databázi, která řídí chování při vkládání, aktualizaci a odstranění souvisejících záznamů.Je například referenční integritu, přinutí vytvořit záznam zákazníka před vytvořením objednávky tohoto zákazníka.

Vývojáři vytvořené v aplikaci Visual Studio 2005 a dřívějších verzích aplikací dat automaticky generovaný kód uložit změněná data pouze na přetaženým z první tabulky Zdroje dat okna.Při přetažení z další tabulky Zdroje dat okně uživatelé museli ručně přidat kód, který chcete uložit změny v těchto tabulek v databázi.Byly pouze uživatelé, přidejte kód volat TableAdapter.Update metody pro jednotlivé tabulky ale logika musela přejímá provádět zvláštní vloží, aktualizace a odstranění v příslušném pořadí pro jednotlivé tabulky, aby se zabránilo porušení referenční integrity.(Například nové zákazníky musí být uložen před přidat své objednávky a objednávky musí být odstraněny před odebráním existujícího zákazníka.)

Při spuštění aplikace Visual Studio 2008 zadané soubory jsou posílena nový TableAdapterManager komponent.TableAdapterManagerkód, který je vyžadován pro uložení dat ve více souvisejících tabulek z několika rutiny s mnoha řádků kódu volání jedné metody snižuje: TableAdapterManager.UpdateAll(TypedDataset).TableAdapterManager Poskytuje základní logika, požadované zachovat referenční integritu mezi objekt dataset a databáze během aktualizace (Uložit).Další informace naleznete v tématu Přehled TableAdapterManager.

Povolení hierarchické aktualizace objekt DataSet

Hierarchické aktualizace je ve výchozím nastavení povoleno pro všechny nové soubory přidaných nebo vytvořené v projektu.Zapnout nebo vypnout aktualizace hierarchické nastavením Hierarchické aktualizace vlastnost zadaný objekt dataset v Vytváření a úpravy typovaných datových sad na True nebo False.Podrobnější informace získáte v tématu Jak: povolení a zakázání hierarchické aktualizace.

Omezení cizího klíče a kaskádové aktualizace a odstranění

Je důležité porozumět, jak cizího klíče, omezení a kaskádové chování v databázi jsou vytvořeny v kódu generovaného dataset.

Standardně jsou generovány tabulky dat v objektu dataset s vztahy (DataRelation) odpovídající relací v databázi.Vztah v objektu dataset však není generován jako omezení cizího klíče.DataRelation Je nakonfigurován jako Vztahu pouze bez UpdateRule nebo DeleteRule v platnosti.

Standardně kaskádové aktualizace a kaskádového odstranění jsou vypnuty i v případě, že je vztah databázi nastavit kaskádové aktualizace a kaskádě zapnuta.Například vytvoření nového odběratele a nové objednávky a chcete data uložit může způsobit konflikt s omezeními cizího klíče v databázi definována.Další informace naleznete v tématu Jak: Konfigurace omezení cizího klíče v objektu Dataset.

Nastavení pořadí provádění aktualizací

Nastavení pořadí provádět aktualizace nastaví pořadí jednotlivých vloží aktualizace a odstraní potřebný pro uložení upravených dat ve všech tabulkách objektu DataSet.Po povolení aktualizace hierarchické vloží jsou provedena první, pak aktualizuje a odstraní.TableAdapterManager Poskytuje UpdateOrder vlastnost, kterou lze nastavit nejprve provádět aktualizace a potom vloží a odstraní.

[!POZNÁMKA]

Je důležité pochopit, že pořadí aktualizace je všechny.Po provedení aktualizace budou vloží jsou prováděny pro všechny tabulky v objektu dataset, poté jsou provedeny aktualizace pro všechny tabulky v objektu dataset a poté jsou provedeny odstraní všechny tabulky v objektu dataset.

Nastavit UpdateOrder vlastnost po přetažení položek z Okno zdroje dat do formuláře, klepněte TableAdapterManager součást zásobník a nastavení UpdateOrder vlastnost v Vlastnosti okna.Další informace naleznete v tématu Jak: nastavení pořadí při provádění hierarchické aktualizace.

Vytvoření záložní kopie objektu DataSet před provedením hierarchické aktualizace

Při ukládání dat (voláním TableAdapterManager.UpdateAll() metoda), TableAdapterManager pokusy o aktualizaci dat pro každou tabulku v jediné transakce.Pokud žádnou část aktualizace pro všechny tabulky, celá transakce vrácena zpět.Ve většině případů vrácení transakce zpět vrátí do původního stavu aplikace.Však někdy můžete chtít obnovit ze záložní kopie objektu dataset.Jedním příkladem je při použití hodnot s automatickým přírůstkem.Pokud k uložení operace se nezdaří, Automatický přírůstek hodnoty objektu dataset obnovit a objekt dataset nadále vytvářet automatickým přírůstkem hodnoty, ponechejte mezery v číslování nemusí být přijatelné v aplikaci.V situacích je to problém, TableAdapterManager poskytuje BackupDataSetBeforeUpdate vlastnost, pokud se nezdaří transakce nahradí záložní kopie existujícího objektu dataset.

[!POZNÁMKA]

Záložní kopie je pouze v paměti během provádění TableAdapterManager.UpdateAll metoda.Neexistuje proto žádný programový přístup do tohoto objektu dataset záložní protože jej nahradí původní objekt dataset nebo dostane mimo rozsah co nejdříve TableAdapterManager.UpdateAll metoda byl ukončen.

Viz také

Úkoly

Názorný postup: Uložení dat z tabulek dat (hierarchické aktualizace)

Koncepty

Novinky ve vývoji datových aplikací v sadě Visual Studio 2012

Ukládání dat

Přehled TableAdapterManager

Další zdroje

Hierarchické aktualizace