Aracılığıyla paylaş


Hiyerarşik Update genel bakış

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

Geliştiriciler Visual Studio 2005 ve önceki sürümlerinde veri uygulamaları oluştururken otomatik olarak oluşturulan kodu yalnızca gelen sürüklenen ilk tablo için değiştirilen veriler kaydedilir Veri kaynakları pencere.Ek tabloları sürüklerken Veri kaynakları penceresinde, kullanıcıların veritabanındaki tablolarda değişiklikleri kaydetmek için kodu el ile eklemek vardı.Sadece, Aranacak kullanıcı kodu eklemek için gerekli olan TableAdapter.Update yöntemi her tablo ancak mantığı vardı uygun sırada tutarlılığı ihlallerini önlemek, her tablo için özel ekler, güncelleştirmeleri ve silmeleri gerçekleştirmek için yapılması.(Örneğin, yeni müşteriler siparişlerini eklemek ve varolan bir müşteri kaldırmadan önce siparişlerinin silinmesi gerekir önce kaydedilmiş olması gerekir.)

Visual Studio 2008'de başlayarak, typed DataSet tarafından yeni geliştirilmiş TableAdapterManager bileşeni.TableAdapterManagerverileri birden çok ilgili tablolarda birçok kod satırları ile çeşitli yordamlar gelen tek 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ığını korumak için gerekli temel mantık sağlar.Daha fazla bilgi için bkz. TableAdapterManager genel bakış.

Bir Dataset içindeki hiyerarşik güncelleştirmeyi etkinleştirme

Varsayılan olarak, eklenen ya da bir projede oluşturulan tüm yeni DataSet için hiyerarşik güncelleştirme etkinleştirilir.Ayarlayarak hiyerarşik güncelleştirmeyi açma veya kapatma Hiyerarşik güncelleştirmek typed dataset nesnesinde özellik 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: etkinleştirme ve devre dışı hiyerarşik güncelleştirme.

Yabancı anahtar kısıtlamaları ve basamaklı güncelleştirmeleri ve silmeleri

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

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

Varsayılan olarak, basamaklı güncelleştirmeleri ve silmeleri veritabanı ilişkisinin basamaklı güncelleştirmeleri ayarlanır ve/veya Silmeleri basamaklama açık olsa bile devre dışı bırakılmıştır.Örneğin, yeni bir müşteri ve yeni bir emir oluşturmak ve verileri kaydedilmeye çalışılırken veritabanı içinde tanımlanan yabancı anahtar kısıtlamalarına sahip bir çakışma oluşabilir.Daha fazla bilgi için bkz. Nasıl yapılır: bir Dataset yabancı anahtar kısıtlamalarını yapılandırma.

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

Değiştirilmiş verileri dataset nesnesinin tüm tablolarda kaydetmek için tek tek sipariş, güncelleştirmeler, ekler ve siler güncelleştirmeleri kümeleri gerçekleştirmek için sırasını ayarlama gerekli.Hiyerarşik güncelleştirme etkinleştirildiğinde, ekler ilk olarak, gerçekleştirilen sonra güncelleştirir ve siler.TableAdapterManager Sağlar bir UpdateOrder özelliği, ilk olarak, güncelleştirmeleri gerçekleştirmek için set sonra ekler ve siler.

[!NOT]

Güncelleştirme sıra tüm dahil olduğunu anlamak önemlidir.Diğer bir deyişle, güncelleştirmeler gerçekleştirildiğinde, ekler dataset içinde tüm tablolar için gerçekleştirilen sonra dataset nesnesindeki tüm tablolar için güncelleştirme yapıldığında ve siler dataset nesnesindeki tüm tablolar için sonra gerçekleştirilir.

Ayarlamak için UpdateOrder sonra öğeleri sürükleme özelliği, Veri Kaynakları Penceresi bir form üzerine tıklatın TableAdapterManager bileşen Tepsi ve set UpdateOrder özelliğinde özelliklerini pencere.Daha fazla bilgi için bkz. Nasıl yapılır: hiyerarşik bir güncelleştirme yaparken sırasını ayarlama.

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

Veri kaydettiğinizde (çağırarak TableAdapterManager.UpdateAll() yöntemi), TableAdapterManager tek bir işlemde 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, hareket geri orijinal durumuna uygulamanıza döndürür.Ancak, bazen, DataSet nesnesinin yedek kopyadan geri yüklemek isteyebilirsiniz.Otomatik artış değerleri kullanılırken bir örnektir.Örneğin, kaydetme, işlem başarılı değil, otomatik artış değerlerini dataset içinde değil sıfırlama ve dataset bir boşluk numaralandırmayı, uygulamanızda kabul edilebilir olmayabilir bırakarak otomatik artan değerler yaratmak devam edecek.Durumlarda, bu sorunu, burada TableAdapterManager sağlar bir BackupDataSetBeforeUpdate özelliği, işlem başarısız olursa, var olan bir DataSet'i bir yedek kopyayla değiştirir.

[!NOT]

Yedek kopyayı yürütülürken yalnızca bellekte olan TableAdapterManager.UpdateAll yöntemi.Bu nedenle, programlı erişimi yoktur bu yedek dataset için onu asıl DataSet'i değiştirir ya da kapsam dışında olduğundan hemen TableAdapterManager.UpdateAll yöntemi çalışmasını bitirdi.

Ayrıca bkz.

Görevler

İzlenecek yol: İlgili veri tabloları (hiyerarşik güncelleme) verilerini kaydetme

Kavramlar

Visual Studio 2012'deki Veri Uygulaması Geliştirme Yenilikleri

Verileri kaydetme

TableAdapterManager genel bakış

Diğer Kaynaklar

Hiyerarşik güncelleştirme