İzlenecek yol: N Katmanlı bir Veri Uygulamasına Doğrulama Ekleme
Verileri doğrulama, veri nesnelerine girilen değerlerin onaylanması işlemidir (örneğin, DataTable ya da LINQ to SQL sınıfları).Doğrulama ayrıca, uygulama için belirlenen kurallarla uyumu sağlar.Alttaki veritabanına güncelleştirmeleri göndermeden önce verileri doğrulamak hataları azaltan iyi bir uygulamadır.Uygulama ve veritabanı arasındaki gidiş gelişlerin potansiyel sayısını da azaltır.
Bu izlenecek yol, bir n-katmanlı uygulamaya doğrulama eklemek için adım adım yönergeler sağlar (İzlenecek Yol: N Katmanlı Bir Veri Uygulaması Oluşturma konusunda oluşturulan çözüm).
Bu kılavuz boyunca aşağıdaki görevlerin nasıl gerçekleştirileceğini öğreneceksiniz:
Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme öğesi ile otomatik olarak parçalı sınıflar oluşturun.
Bir bireysel sütunda değer değiştiğinde doğrulamayı gerçekleştirmek için kod ekleyin.
Önkoşullar
Bu yönergeyi tamamlamak için aşağıdakilere ihtiyacınız vardır:
Şurada oluşturulan çözüm ve ilgili projeler: İzlenecek Yol: N Katmanlı Bir Veri Uygulaması Oluşturma.
Northwind örnek veritabanına erişim.Daha fazla bilgi için bkz. Nasıl Yapılır: Örnek Veritabanları Yükleme.
[!NOT]
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için, bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.
NTierWalkthrough Çözümü açılıyor
NTierWalkthrough çözümü açmak için
Dosya menüsünde Aç'ın üzerine gelin, Proje/Çözüm'ü tıklayın ve ardından NTierWalkthrough.sln dosyasının konumuna gidin.
[!NOT]
NTierWalkthrough.sln dosyası İzlenecek Yol: N Katmanlı Bir Veri Uygulaması Oluşturma konusu içerisinde oluşturulur ve bu izlenecek yolu tamamlamak için ön şarttır.Henüz yapmadıysanız, işlemi tamamladığınızda tüm projeleri kaydederekİzlenecek Yol: N Katmanlı Bir Veri Uygulaması Oluşturma başlıklı konuyu tamamlayın.
Bireysel Sütun Değişimi Sırasında Veri Denetlemek için Doğrulama ekleme
Bu yordam, yeni bir siparişteki OrderDate sütunun geçerli veya daha önceki tarih değerine ayarlandığını doğrulamak için doğrulama ekler.Bu uygulamanın gereksinimi, OrderDate sütunu bugünden daha ileri bir tarih içeremeyeceğidir; ileri tarihteki siparişlere izin verilmez.
OrderDate sütununa girilen değeri doğrulamak üzere doğrulama eklemek için
Çözüm Gezgini'nde DataAccessTier projesindeki NorthwindDataSet.xsd dosyasını çift tıklayarak Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme'da veri kümesini açın.
Tasarımcıdaki Siparişler tablosunun OrderDate sütununu çift tıklatın.Bu eylem, ColumnChanging olay işleyicisini oluşturur.
[!NOT]
Dataset Designer, C# olayı için otomatik olarak bir olay işleyicisi oluşturmaz.Olayı C#'ta işlemek için gereken kod, aşağıda bu yordama eklenmiştir.SampleColumnChangingEvent oluşturulur ve EndInit yöntemindeki ColumnChanging olayına kaydolur.
Geçerli tarihi veya öncesini içeren OrderDate sütununa ilişkin e.ProposedValue öğesini doğrulamak için kod ekleyin.Önerilen değer geçerli değilse, hata içerdiğini belirtmek için sütunu ayarlayın.
Aşağıdaki kod örneği OrderDate sütununun mevcut tarih veya daha önceki bir tarihi içerdiğini doğrular.OrderDate değeri bugünden sonraki bir tarihse OrderDate sütunu hata olarak ayarlanır.OrderDate bugün veya daha önceyse Else yan tümcesi hatayı siler.
Visual Basic kodunu ColumnChanging olay işleyicisine yapıştırın.C# kodunu OrdersDataTable kısmi sınıf bildirimine yapıştırın.
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, OrderDate sütununun değerini geçersiz bir tarihle değiştirin.
Uygulamayı test etmek için
F5 tuşuna basın.
Müşteriler ve Siparişler tablolarından alınan veriler formda görünür.
Siparişlerin bulunduğu DataGridView'da, OrderDate sütunundaki değeri (herhangi bir kayıttan) yarının tarihiyle değiştirin.
Değişikliği kabul etmek için satıra gidin.
Doğrulama başarısız olur ve geçersiz bir değer içeren OrderDate hücresinde bir hata simgesi görüntülenir.
Doğrulama hatasını görmek için fare imlecini hata simgesi üzerinde tutun.
Formu kapatın.
Sonraki Adımlar
Uygulama gereksinimlerinize bağlı olarak, n-katmanlı uygulamaya doğrulama ekledikten gerçekleştirmek isteyebileceğiniz birkaç adım vardır.Örneğin, bu uygulamaya aşağıdaki geliştirmeleri yapmak isteyebilirsiniz:
- Kaydın tümü değiştirildiğinde, değişiklikleri doğrulayacak doğrulama ekleyin.Bilgi için bkz. Nasıl yapılır: N Katmanlı bir Veri Kümesine Doğrulama Ekleme.