Aracılığıyla paylaş


Nasıl yapılır: n-katmanlı Dataset nesnesine doğrulama ekleme

N-katmanlı çözümde ayrılmış bir DataSet'e doğrulama ekleyerek temelde tek dosya dataset (tek bir projede bir dataset) doğrulama ekleyerek aynıdır.Veri doğrulama gerçekleştirmek için önerilen yeri sırasındadır ColumnChanging ve/veya RowChanging veri tablosu olayları.

Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme Sütun ve satır dataset nesnesindeki veri tabloları olayları değiştirmek için kullanıcı kodu add kısmi sınıflar oluşturmak için işlevsellik sağlar.N-katmanlı çözümde bir DataSet nesnesine kod ekleme hakkında daha fazla bilgi için bkz: Nasıl yapılır: n-katmanlı uygulamalar veri kümeleriyle çalışma kodu ekleyin, ve Nasıl yapılır: n-katmanlı uygulamalarda TableAdapters kodu ekleyin.Kısmi sınıfları hakkında daha fazla bilgi için bkz: Nasıl yapılır: bir sınıf parçalı sınıflar (Class Designer) bölme veya Kısmi Sýnýflar ve yöntemler (C# Programlama Kılavuzu).

[!NOT]

Ne zaman, ayrı DataSet TableAdapters ' (ayarlayarak DataSet proje özelliği), projedeki varolan kısmi dataset sınıfları değil taşınabilir otomatik olarak.Varolan veri kümesi parçalı sınıflar dataset projeye el ile taşınmalıdır.

[!NOT]

Dataset Designer otomatik olarak olay iþleyicileri için C# [NULL]'taki oluşturmaz ColumnChanging ve RowChanging olayları.El ile bir olay işleyici yaratın ve en alttaki olay olay işleyicisi kanca vardır.Aşağıdaki yordamlar gerekli olay işleyicileri hem Visual Basic ve C# oluşturmak için adımları sağlar.

Sütunları tek tek değişiklikleri doğrulanıyor

Tek tek sütunların değerlerini işleme göre doğrula ColumnChanging olay.ColumnChanging Bir sütunundaki değeri değiştirildiğinde olayı oluşturulur.Bir olay işleyicisi oluşturma ColumnChanging İstenen sütun üzerinde çift tıklatarak olay Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme.

Bir sütunun çift ilk kez Tasarımcı için bir olay işleyicisi oluşturur ColumnChanging olay.Ek olarak ColumnChanging olayı, bir If…Then ifadesi de oluşturulur, belirli bir sütun için sınar.Örneğin, İstenenTarih sütun Northwind Siparişler tablosu üzerinde çift tıklatıldığında, aşağıdaki kod üretilir:

Private Sub OrdersDataTable_ColumnChanging(ByVal sender As System.Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles Me.ColumnChanging
    If (e.Column.ColumnName = Me.RequiredDateColumn.ColumnName) Then
        ' Add validation code here.
    End If
End Sub

[!NOT]

Dataset Designer, C# projeleri, dataset ve dataset nesnesindeki her bir tablo için kısmi sınıflar yalnızca oluşturur.Dataset Designer olay işleyicileri otomatik olarak oluşturmaz ColumnChanging ve RowChanging c Visual Basic'te yaptığı gibi # olayları.C# projeleri, el ile olayını işleyin ve en alttaki olay yöntemi kanca için bir yöntem oluşturmak zorunda.Aşağıdaki yordam, gerekli olay işleyicileri hem Visual Basic ve C# oluşturmak için adımları sağlar.

[!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ı.

Doğrulama sırasında değişiklikleri tek tek sütun değerlerini eklemek için

  1. Dataset içinde açmak Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme çift .xsd dosya Solution Explorer'da.Daha fazla bilgi için bkz. Nasıl yapılır: bir Dataset Dataset tasarımcısında açmak.

  2. Doğrulamak istediğiniz sütununu ç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 aşağıda yer almaktadır.SampleColumnChangingEventoluşturulur ve sonra onu en çok API'lerin ColumnChanging bir olayı EndInit yöntemi.

  3. Doğrulamak için kod eklemek e.ProposedValue uygulamanızın gereksinimlerini karşılayan verileri içerir.Önerilen değer kabul edilemez ise, hata içerdiğini belirtmek için sütun ayarla.

    Aşağıdaki kod örneği, miktar sütun 0'dan fazla içeren doğrular.Miktarı sıfıra eşit veya küçükse, sütun için bir hata ayarlanır.Else Yan tümcesinde hata miktar 0'dan büyükse temizler.Sütun değiştirme olay işleyicisini kod aşağıdakine benzer olmalıdır:

    If (e.Column.ColumnName = Me.QuantityColumn.ColumnName) Then
        If CType(e.ProposedValue, Short) <= 0 Then
            e.Row.SetColumnError(e.Column, "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError(e.Column, "")
        End If
    End If
    
    // C#
    // Add this code to the DataTable 
    // partial class.
    
        public override void EndInit()
        {
            base.EndInit();
            // Hook up the ColumnChanging event
            // to call the SampleColumnChangingEvent method.
            ColumnChanging += SampleColumnChangingEvent;
        }
    
        public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e)
        {
            if (e.Column.ColumnName == QuantityColumn.ColumnName)
            {
                if ((short)e.ProposedValue <= 0)
                {
                    e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
                }
                else
                {
                    e.Row.SetColumnError("Quantity", "");
                }
            }
        }
    

Tüm satırlar için değişiklikleri doğrulanıyor

Tüm satırların değerlerini işleme göre doğrula RowChanging olay.RowChanging Tüm sütunlardaki değerleri kabul edilendir, olayı oluşturulur.İçinde doğrulamak için gerekli olan RowChanging olayı başka bir sütundaki değer, bir sütundaki değeri dayanır.Örneğin, Northwind Siparişler tablosunda sipariş tarihi ve İstenenTarih düşünün.Siparişleri girildiğinde, doğrulama sipariş üzerinde ya da OrderDate önce GereklilikTarihi girilmez emin olmayı sağlar.Tek sütun değişikliği doğrulama anlamsız şekilde bu örnekte GereklilikTarihi ile OrderDate sütunlar için değerleri karşılaştırmak gerekir.

Bir olay işleyicisi oluşturma RowChanging tablo adını tablonun başlık çubuğunu çift tıklatarak olay Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme.

Değişiklikleri sırasında doğrulama için tüm satırları eklemek için

  1. Dataset içinde açmak Türü Belirtilmiş Veri Kümeleri Oluşturma ve Düzenleme çift .xsd dosya Solution Explorer'da.Daha fazla bilgi için bkz. Nasıl yapılır: bir Dataset Dataset tasarımcısında açmak.

  2. Designer, veri tablosunun başlık çubuğunu çift tıklatın.

    Kısmi bir sınıf ile oluşturulan bir RowChanging olay işleyicisi ve Kod Düzenleyicisi'ni açar.

    [!NOT]

    Dataset Designer için bir olay işleyicisi otomatik olarak oluşturmaz RowChanging C# projeleri olay.İşlemek için bir yöntem oluşturmak zorunda RowChanging olay ve tablonun başlatma yönteminde yukarı kanca kod yürütebilir.

  3. Kısmi sınıf bildirimi içinde kullanıcı kodu ekleyin.

  4. Aşağıdaki kod sırasında doğrulamak için kullanıcı kodu eklemek nereye gösteren RowChanging Visual Basic olay:

    Partial Class OrdersDataTable
        Private Sub OrdersDataTable_OrdersRowChanging(ByVal sender As System.Object, ByVal e As OrdersRowChangeEvent) Handles Me.OrdersRowChanging
            ' Add logic to validate columns here.
            If e.Row.RequiredDate <= e.Row.OrderDate Then
                ' Set the RowError if validation fails.
                e.Row.RowError = "Required Date cannot be on or before the OrderDate"
            Else
                ' Clear the RowError when validation passes.
                e.Row.RowError = ""
            End If
        End Sub
    End Class
    
  5. Aşağıdaki kod nasıl oluşturulacağını gösterir RowChanging olay işleyicisi ve sırasında doğrulamak için kullanıcı kodu eklemek nereye RowChanging olayı için C#:

    partial class OrdersDataTable
    {
        public override void EndInit()
        {
            base.EndInit();
            // Hook up the event to the
            // RowChangingEvent method.
            OrdersRowChanging += RowChangingEvent;
        }
    
        public void RowChangingEvent(object sender, OrdersRowChangeEvent e)
        {
            // Perfom the validation logic.
            if (e.Row.RequiredDate <= e.Row.OrderDate)
            {
                // Set the row to an error when validation fails.
                e.Row.RowError = "Required Date cannot be on or before the OrderDate";
            }
            else
            {
                // Clear the RowError if validation passes.
                e.Row.RowError = "";
            }
        }
    }
    

Ayrıca bkz.

Görevler

İzlenecek yol: n-katmanlı veri uygulaması oluşturma

Kavramlar

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

N-katmanlı veri Applications'a genel bakış

DataSet içindeki veri doğrulama