Hiyerarşik Güncelleştirmeye Genel Bakış

Hiyerarşik güncelleştirme iki veya daha fazla ilgili tablolarda geri veritabanı tutarlılığını koruyarak olan dataset nesnesinden güncelleştirilmiş verileri kaydetmek için başvurur.Bilgi tutarlılığı , ekleme, güncelleştirme ve silme ilgili kayıtları davranışını denetleyen yabancı anahtar kısıtlamaları tarafından bir veritabanında sağlanan tutarlılık kuralları gösterir.Örneğin, o müşteriye ait siparişleri oluşturmadan önce bir müşteri kaydı oluşturmak için zorlayabilir başvurusal bütünlük olur.

Geliştiriciler Visual Studio 2005 ve önceki sürümlerinde veri uygulamaları oluştururken otomatik olarak oluşturulan kodu değişen verilere karşı sürüklenen yalnızca ilk tablonun kaydedilmiş Veri kaynakları penceresi.Ek tablodan sürüklerken Veri kaynakları penceresinde, kullanıcıları gerekiyordu veritabanındaki tablolarda değişiklikleri kaydetmek için kodu el ile ekleyin.Sadece, çağırmak için kullanıcı kodu eklemek için gerekli olan TableAdapter.Update yöntemi, her tablo, ancak mantığı olan bilgi tutarlılığı ihlallerini önlemek, her tablo için uygun sırada belirli ekler, güncelleştirir ve siler gerçekleştirmek için yapılması. (Örneğin, yeni müşteri siparişlerinin ekleyebilir ve varolan bir müşteri kaldırmadan önce siparişlerinin silinmesi gerekir önce kaydedilmesi gerekiyor.)

Visual Studio 2008'de başlayan, typed DataSet yeni tarafından geliştirilmiş TableAdapterManager bileşen.TableAdapterManagerveri Birden çok ilişkili tabloların kod satır sayısını içeren çeşitli yordamlar gelen tek bir yöntem çağrısı kaydetmek için gerekli olan kodu azaltır: TableAdapterManager.UpdateAll(TypedDataset).TableAdapterManager Dataset ile veritabanı arasındaki (Kaydet) güncelleştirme işlemleri sırasında bilgi tutarlılığı korumak için gerekli olan tüm temel mantığını sağlar.Daha fazla bilgi için bkz. TableAdapterManager Genel Bakışı.

DataSet hiyerarşik güncelleştirmeyi etkinleştirme

Varsayılan olarak, eklenen veya bir projede oluşturulan tüm yeni veri kümeleri için hiyerarşik güncelleştirme etkinleştirilir.Ayarlayarak hiyerarşik güncelleştirmeyi açma veya kapama Hiyerarşik güncelleştirmek özelliği türü belirtilmiş veri kümesinin Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme için doğru veya yanlış.Ayrıntılı bilgi için, bkz. Nasıl Yapılır: Hiyerarşik Güncelleştirmeyi Etkinleştirme veya Devre Dışı Bırakma.

Yabancı anahtar kısıtlamaları ve basamaklı güncelleştirme ve silme

Nasıl yabancı anahtar kısıtlamalarını anlamak önemlidir ve davranış basamaklı veritabanında oluşturulan dataset kodu oluşturulur.

Varsayılan olarak, veri tabloları, bir dataset ile ilişkileri oluşturulur (DataRelation) veritabanında ilişkileri eşleşecek.Ancak, dataset İlişkideki yabancı anahtar kısıtlaması oluşturulmaz.DataRelation Olarak yapılandırılmış İlişkisi yalnızca olmayan bir UpdateRule veya DeleteRule yürürlükte.

Varsayılan olarak, basamaklanan güncelleştirmeleri ve silmeleri veritabanı ilişkisi basamaklanan güncelleştirmeleri ile ayarlanır ve/veya silmenin açık olsa bile devre dışı bırakılmıştır.Örneğin, yeni müşteri ve yeni bir sipariş oluşturmak ve sonra verileri kaydetmeye çalışırken bir çakışma veritabanı içinde tanımlanan yabancı anahtar kısıtlamaları ile neden olabilir.Daha fazla bilgi için bkz. Nasıl Yapılır: Bir Veri Kümesinde Yabancı Anahtar Kısıtlamalarını Yapılandırma.

Güncelleştirmeleri gerçekleştirmek için sırasını ayarlama

Tek tek sırasını, güncelleştirmeler, ekler ve siler güncelleştirmeleri kümeleri gerçekleştirmek için sırasını ayarlama değiştirilmiş verileri dataset nesnesinin tüm tablolarda kaydetmek için gerekli.Hiyerarşik güncelleştirme etkinleştirildiğinde, ekler önce gerçekleştirilen sonra güncelleştirir ve siler.TableAdapterManager, önce Güncellemeler, ardından Yerleştirmeler ve ardından Silmeleri gerçekleştirmek üzere ayarlanabilecek bir UpdateOrder özelliği sağlar.

[!NOT]

Güncelleştirme sıraya tüm dahil olduğunu anlamak önemlidir.Diğer bir deyişle, güncelleştirmelerin ne zaman gerçekleştirileceğini, ekler, veri kümesindeki tüm tablolar için gerçekleştirilen sonra güncelleştirmeleri kümesindeki tüm tablolar için gerçekleştirilir ve kümesindeki tüm tabloları siler sonra gerçekleştirilir.

Ayarlamak için UpdateOrder öğeleri sürükleyerek sonra özelliği, Veri Kaynakları Penceresi bir form üzerine tıklayın TableAdapterManager bileşen ve set UpdateOrder özelliği Özellikler penceresi.Daha fazla bilgi için bkz. Nasıl yapılır: Hiyerarşik Güncelleştirme Yaparken Sırayı Ayarlama.

Hiyerarşik bir güncelleştirme yapmadan önce bir Dataset, bir yedek kopyasını oluşturma

Veri kaydettiğinizde (çağırarak TableAdapterManager.UpdateAll() yöntemi), TableAdapterManager tek bir işlemle her tablo için veri güncelleştirmek çalışır.Herhangi bir bölümünü herhangi bir tabloyu güncelleştirme başarısız olursa, tüm işlem geri alınır.Çoğu durumda, uygulamanızı özgün durumuna hareketi geri döndürür.Ancak, bazen dataset yedek kopyasından geri yüklemek isteyebilirsiniz.Otomatik artış değerleri kullanırken bir örnektir.Örneğin, kaydetme, işlem başarılı değil, otomatik artış değerleri değil dataset içinde sıfırlama ve dataset uygulamanızda edilebilir değil, numaralandırma içinde bir boşluk bırakarak otomatik artan değerler yaratmak devam edecektir.Durumlarda bir sorun, burada TableAdapterManager sağlayan bir BackupDataSetBeforeUpdate işlem başarısız olursa, var olan bir dataset yedek kopyayla değiştirir özelliği.

[!NOT]

Yedek kopyayı yürütülmesi sırasında yalnızca bellekte olan TableAdapterManager.UpdateAll yöntem.Bu nedenle, programlı erişimi yoktur bu yedek veri kümesi için özgün veri kümesini değiştirir ya da kapsam dışına gider çünkü hemen sonra TableAdapterManager.UpdateAll yönteminin çalışmasını bitirdi.

Ayrıca bkz.

Görevler

İzlenecek yol: İlgili Veri Tablolarından Veri Kaydetme (Hiyerarşik Güncelleştirme)

Kavramlar

Verileri Kaydetme

TableAdapterManager Genel Bakışı

Diğer Kaynaklar

Hiyerarşik Güncelleştirme