Sdílet prostřednictvím


Jak: Přidání ověření do objektu Dataset N-té

Přidání ověření dataset, oddělené do n té řešení je v podstatě stejný jako přidání ověření do jednoho souboru dataset (dataset v jednom projektu).Navrhované umístění pro provedení ověření dat je během ColumnChanging a RowChanging události data tabulky.

Vytváření a úpravy typovaných datových sad Poskytuje funkce pro vytvoření dílčí třídy, které můžete přidat kód uživatele do sloupců a řádků, Změna události tabulky dat v objektu dataset.Další informace o přidání kódu do objektu dataset v roztoku n té viz Jak: přidat kód objektů DataSet v N-té aplikací, a Jak: přidat kód TableAdapters N-té aplikací.Další informace o částečné třídy, viz Jak: Třída rozdělit částečné třídy (Class Designer) nebo Částečné třídy a metody (Příručka programování C#).

[!POZNÁMKA]

Zvláštní soubory z TableAdapters (nastavením DataSet projektu vlastnost), nebudou automaticky přesunuty existující třídy dataset částečné v projektu.Existující částečnou třídy dataset je nutné ručně přesunout projektu dataset.

[!POZNÁMKA]

Návrhář Dataset v C# pro automaticky nevytvoří obslužné rutiny událostí ColumnChanging a RowChanging události.Musíte ručně vytvořit obslužnou rutinu události a zavěšení obslužné rutiny události do podkladové událostí.Následující postupy obsahují kroky k vytvoření obslužné rutiny událostí požadované v jazyce Visual Basic a C#.

Ověření změny jednotlivých sloupců

Ověřit hodnoty v jednotlivých sloupcích manipulaci ColumnChanging událostí.ColumnChanging Událost je aktivována, když je změněna hodnota ve sloupci.Vytvoření obslužné rutiny události pro ColumnChanging události, poklepejte na požadovaný sloupec Vytváření a úpravy typovaných datových sad.

Prvním poklepejte na sloupec, Návrhář vytvoří obslužnou rutinu události pro ColumnChanging událostí.Navíc ColumnChanging událostí, If…Then prohlášení je také vytvořena, testuje určitého sloupce.Například následující kód je generován při DodatDne sloupec v tabulce objednávky Northwind je poklepání na:

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

[!POZNÁMKA]

V jazyce C# projekty Dataset Návrhář vytvoří pouze částečné třídy dataset a jednotlivých tabulek v objektu dataset.Návrhář Dataset automaticky nevytvoří obslužné rutiny pro ColumnChanging a RowChanging událostí v jazyce C# jako v jazyce Visual Basic.V C# projekty je nutné ručně vytvořit metody zpracování události a metody do podkladové události zavěšení.Následující postup obsahuje kroky k vytvoření obslužné rutiny událostí požadované v jazyce Visual Basic a C#.

[!POZNÁMKA]

Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.

Přidání ověření během změny hodnot jednotlivých sloupců

  1. Otevřete objekt dataset v Vytváření a úpravy typovaných datových sad poklepáním XSD soubor v aplikaci Solution Explorer.Další informace naleznete v tématu Jak: Otevřete Návrhář Dataset objektu Dataset.

  2. Poklepejte na sloupec, který chcete ověřit.Tato akce vytvoří ColumnChanging obslužnou rutinu události.

    [!POZNÁMKA]

    Návrhář Dataset automaticky nevytvoří obslužnou rutinu události pro událost C#.Dále jsou uvedeny potřebné pro zpracování událostí v jazyce C#.SampleColumnChangingEventje vytvořen a pak je své až do použití ColumnChanging událostí v EndInit metoda.

  3. Přidat kód ověřit, zda e.ProposedValue obsahuje data, která splňuje požadavky aplikace.Pokud navrhovaná hodnota nepřijatelná, nastavte sloupec označte obsahuje chybu.

    Následující příklad kódu ověří množství sloupců obsahuje více než 0.Jestliže množství je menší než nebo rovno 0, sloupce nastavena na chybu.Else Klauzule vymaže chybu, pokud je množství větší než 0.Kód v obslužné rutině události změna sloupce by měl vypadat takto:

    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", "");
                }
            }
        }
    

Ověření změn celé řádky

Ověřit hodnoty v celé řádky manipulaci RowChanging událostí.RowChanging Událost je aktivována, když jsou hodnoty ve všech sloupcích potvrzené.Je nutné ověřit v RowChanging událost při hodnotu v jednom sloupci závisí na hodnotě v jiném sloupci.Zvažte například DatumObjednávky a DodatDne v tabulce objednávek v Northwind.Při zadání objednávky ověření, zajistíte, že není zadán objednávky s DodatDne, který je nebo DatumObjednávky.V tomto příkladu hodnoty pro sloupce na DodatDne a DatumObjednávky třeba porovnání, aby ověření změn jednotlivé sloupce nemá smysl.

Vytvoření obslužné rutiny události pro RowChanging poklepáním na název tabulky v záhlaví tabulky na události Vytváření a úpravy typovaných datových sad.

Přidání ověření během změny do celé řádky

  1. Otevřete objekt dataset v Vytváření a úpravy typovaných datových sad poklepáním XSD soubor v aplikaci Solution Explorer.Další informace naleznete v tématu Jak: Otevřete Návrhář Dataset objektu Dataset.

  2. Poklepejte na záhlaví okna Návrhář tabulky data.

    Částečné třídy je vytvořen s RowChanging obslužné rutiny události a otevře v editoru kódu.

    [!POZNÁMKA]

    Návrhář Dataset automaticky nevytvoří obslužnou rutinu události pro RowChanging událostí v jazyce C# projektech.Je nutné vytvořit metodu pro zpracování RowChanging událostí a spouštění kódu zapojení událost v metodu inicializace v tabulce.

  3. Přidáte kód uživatele uvnitř deklarace částečné třídy.

  4. Následující kód ukazuje, kam chcete přidat kód uživatele během ověření RowChanging událostí v jazyce Visual Basic:

    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. Následující kód ukazuje, jak vytvořit RowChanging obslužné rutiny události a kde lze přidat kód uživatele během ověření RowChanging událostí jazyka 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 = "";
            }
        }
    }
    

Viz také

Úkoly

Názorný postup: Vytváření aplikací N-té dat

Koncepty

Novinky ve vývoji datových aplikací v sadě Visual Studio 2012

N-té dat aplikace – přehled

Ověření dat v objektech DataSet