Sdílet prostřednictvím


Návod: Přidávání ověření do vícevrstvé datové aplikace

Ověřování dat je proces ověření, že hodnoty zadané do datových objektů (například dataTables nebo třídy LINQ to SQL) jsou v souladu s omezeními ve schématu objektu. Ověřování také zajišťuje dodržování pravidel stanovených pro aplikaci. Ověřování dat před odesláním aktualizace do podkladové databáze je dobrá praxe, která snižuje chyby. Také snižuje potenciální počet výměn mezi aplikací a databází.

Tento návod obsahuje podrobné pokyny pro přidání ověřování pro n-vrstvou aplikaci (řešení vytvořené v tématu Návod: Vytvoření víceúrovňové datové aplikace).

V tomto návodu se dozvíte jak provést následující úkoly:

Požadavky

K dokončení tohoto návod potřebujete následující:

Poznámka

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Customizing Development Settings in Visual Studio.

Otevírání řešení NTierWalkthrough

Otevření řešení NTierWalkthrough

Přidání ověřování do kontroly dat během změny jednotlivých sloupců

Tato procedura přidá ověření pro ověření, že sloupec OrderDate v nové zakázce je nastaven na hodnotu aktuálního data nebo staršího. Požadavek této aplikace je, aby sloupec OrderDate nesměl obsahovat datum, které je pozdější než dnešní; budoucí objednávky nejsou povoleny.

Přidání ověřování k ověření hodnoty zadané do sloupce OrderDate

  1. Otevřete datovou sadu v Vytváření a úpravy typovaných datových sad poklepáním na soubor NorthwindDataSet.xsd v projektu DataAccessTier v Průzkumníku řešení.

  2. Poklepejte na sloupec OrderDate v tabulce Objednávky v návrháři. Tato akce vytvoří obslužnou rutinu události ColumnChanging.

    Poznámka

    Návrhář Dataset nevytváří automaticky obslužnou rutinu události pro událost C#.Kód, který je vyžadován ke zpracování událostí v jazyce C#, je dále v tomto postupu zahrnut.SampleColumnChangingEvent je vytvořeno a pak přihlášeno na událost ColumnChanging v metodě EndInit.

  3. Přidejte kód pro ověření, že e.ProposedValue pro sloupec OrderDate obsahuje aktuální datum nebo starší. Pokud navrhovaná hodnota není platná, nastavte sloupec, aby označoval, že obsahuje chybu.

    Následující příklad kódu ověřuje, zda sloupec OrderDate obsahuje aktuální datum nebo starší. Pokud je hodnota DatumObjednávky datum pozdější než dnešní datum, sloupec DatumObjednávky je nastaven na chybu. Klauzule Else vymaže chybu, je-li OrderDate dnešní nebo dřívější.

    Vložte kód Visual Basic do obslužné rutiny události ColumnChanging. Vložte kód jazyka C# do částečné deklarace třídy OrdersDataTable.

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

Testování aplikace

Chcete-li testovat aplikaci, změňte hodnotu ve sloupci OrderDate na datum, které není platné.

Testování aplikace

  1. Stiskněte F5.

  2. Ve formuláři se zobrazí data z tabulek Zákazníci a objednávky.

  3. V ovládacím prvku DataGridView, který obsahuje objednávky, změňte hodnotu ve sloupci OrderDate (u všech záznamů) na zítřejší datum.

  4. Opusťte řádek pro potvrzení změny.

    Ověření se nezdaří a zobrazí se ikona chyby v buňce OrderDate, která obsahuje neplatnou hodnotu.

  5. Umístěte ukazatel myši na ikonu chyby, a zobrazíte tak chybu ověřování.

  6. Zavřete formulář.

Další kroky

V závislosti na požadavcích aplikace existuje několik kroků, které můžete provést po přidání ověřování do n-vrstvých aplikací. Můžete například chtít vytvořit následující vylepšení této aplikace:

Viz také

Další zdroje

Práce s datovými sadami ve vícevrstvých aplikacích

Hierarchická aktualizace

Přístup k datům v sadě Visual Studio