İzlenecek yol: n-katmanlı veri uygulama doğrulama ekleme
Doğrulama nesnenin şema kısıtlamalar veri nesneleri (örneğin, DataTable ya da sql sınıfları için LINQ) içine girilen değerlere uymak onaylama işlemi verilerdir.Doğrulama da uygulama için belirlenen kurallar ile uyumluluğunu garanti altına alır.Alttaki veritabanına güncelleştirme göndermeden önce veri doğrulama hataları azaltır, iyi bir uygulamadır.Ayrıca, başvurular bir uygulama ve veritabanı arasındaki olası sayısını azaltır.
Bu izlenecek yol doğrulama n-katmanlı uygulama eklemek için adım adım yönergeler sağlar (oluşturulan çözüm İzlenecek yol: n-katmanlı veri uygulaması oluşturma konu).
Bu izlenecek yolda sırasında aşağıdaki görevleri gerçekleştirmek öğreneceksiniz:
Kısmi sınıfları kullanarak otomatik olarak üretmek Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme.
Tek bir sütun değeri değiştiğinde doğrulama yapmak için kod ekleyin.
Önkoşullar
Bu yönergeyi tamamlamak için aşağıdakilere ihtiyacınız vardır:
Oluşturulan ilişkili projeleri ve çözüm İzlenecek yol: n-katmanlı veri uygulaması oluşturma.
Northwind örnek veritabanı erişimi.Daha fazla bilgi için bkz. Nasıl yapılır: örnek veritabanları yükleme.
[!NOT]
Bilgisayarınızda, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazılarının adı veya konumu farklı gösterilebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio ayarları.
NTierWalkthrough çözüm açılıyor
NTierWalkthrough çözümü açmak için
Üzerinde Dosya menüsü, açık,'ı Project/Solutionve NTierWalkthrough.sln dosyasının konumuna gidin.
[!NOT]
NTierWalkthrough.sln dosyası oluşturulur İzlenecek yol: n-katmanlı veri uygulaması oluşturma konu ve Bu izlenecek yolu tamamlamak için bir önkoşuldur.Tamamlamak İzlenecek yol: n-katmanlı veri uygulaması oluşturma , henüz bunu yapmadıysanız, tamamladığınızda, tüm projelerin kaydetme konusuna.
Tek bir sütun değişikliği sırasında verileri denetlemek için doğrulama ekleme
Bu yordam, yeni bir sipariş OrderDate sütununda geçerli tarihi veya daha önceki değerine ayarlandığını doğrulamak için doğrulama ekleyeceksiniz.Bu uygulama OrderDate sütununun daha sonraki bir tarih olamaz gereksinimdir bugünden; Gelecekteki siparişleri izin verilmez.
OrderDate sütununa girilen değeri doğrulamak için doğrulama eklemek için
Dataset içinde açın Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme DataAccessTier projesinde Solution Explorer'da NorthwindDataSet.xsd dosyasını çift tıklatarak.
Tasarımcı Orders tablosundaki OrderDate sütununa çift tıklatın.Bu eylemi oluşturur ColumnChanging olay işleyicisi.
[!NOT]
Dataset Designer C# olayı için bir olay işleyicisi otomatik olarak oluşturmaz.C# [NULL]'taki olayý iþlemek için gereken kod, bu yordamı eklenmiştir.SampleColumnChangingEventoluşturulur ve sonra abone oldukları ColumnChanging olayında EndInit yöntemi.
Doğrulamak için kod ekleyin e.ProposedValue için sipariş tarihi geçerli tarih sütunu içerir veya önceki bir sürümü.Önerilen değer geçerli değilse, hata içerdiğini belirtmek için sütun ayarla.
Aşağıdaki kod örneği, OrderDate sütununda geçerli tarihi içeren doğrular veya önceki bir sürümü.OrderDate değeri bugünden sonraki bir tarih ise, OrderDate sütununda bir hata için ayarlanır.Else Yan tümcesi, OrderDate bugün veya önceki ise hata temizler.
Visual Basic kodu içine yapıştırın ColumnChanging olay işleyicisi.C# kodu yapıştırın OrdersDataTable kısmi sınıf bildirimi.
If (e.Column.ColumnName = Me.OrderDateColumn.ColumnName) Then If CType(e.ProposedValue, DateTime) > Today Then e.Row.SetColumnError(e.Column, "OrderDate cannot be in the future") Else e.Row.SetColumnError(e.Column, "") End If End If
// Replace the NorthwindDataSet partial class with the following: public partial class NorthwindDataSet { partial class OrdersDataTable { public override void EndInit() { base.EndInit(); // Configure the ColumnChanging event // to call the SampleColumnChangingEvent method. ColumnChanging += SampleColumnChangingEvent; } public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e) { if (e.Column.ColumnName == OrderDateColumn.ColumnName) { if ((System.DateTime)e.ProposedValue > System.DateTime.Today) { e.Row.SetColumnError("OrderDate", " OrderDate cannot be in the future"); } else { e.Row.SetColumnError("OrderDate", ""); } } } } }
Uygulamayı Test Etme
Uygulamayı test etmek için geçersiz bir tarih OrderDate sütununun değerini değiştirin.
Uygulamayı test etmek için
F5'e basın.
Müşteriler ve Siparişler tablolarındaki verileri formda görünür.
Siparişleri içeren DataGridView, yarının tarihiyle OrderDate sütununa (herhangi bir kayıt) değeri değiştirin.
Değişikliği kabul etmek için satır gidin.
Doğrulama başarısız olur ve geçersiz değer içeriyor SiparişTarihi hücrede bir hata simgesi görüntülenir.
Fare işaretçisini doğrulama hatasını görmek için hata simgesinin üzerinde tutun.
Formu kapatın.
Sonraki Adımlar
Uygulama gereksinimlerinize bağlı olarak, n-katmanlı uygulama doğrulama ekledikten sonra gerçekleştirmek isteyebileceğiniz birkaç adım vardır.Örneğin, bu uygulama için aşağıdaki geliştirme yapmak isteyebilirsiniz:
- Bir kaydın tümünü değiştirdiğinizde, değişiklikleri onaylar doğrulama ekleyin.Daha fazla bilgi için, bkz. Nasıl yapılır: n-katmanlı Dataset nesnesine doğrulama ekleme.
Ayrıca bkz.
Kavramlar
Visual Studio 2012'deki Veri Uygulaması Geliştirme Yenilikleri