Wskazówki: dodawanie sprawdzania poprawności do aplikacji warstwowych
Sprawdzanie poprawności danych jest procesem potwierdzania, że wartości wprowadzone w obiektach danych (na przykład DataTables lub programu LINQ to SQL klas) są zgodne z ograniczeniami w schemacie obiektu.Sprawdzanie poprawności zapewnia także zgodność z zasadami ustanowionymi dla aplikacji.Sprawdzanie poprawności danych, aby wysłać aktualizacje do podstawowej bazy danych jest dobrą praktyką, która zmniejsza błędy.Zmniejsza to także potencjalną liczbę „wycieczek” tam i z powrotem między aplikacją a bazą danych.
Ten instruktaż zapewnia instrukcje krok po kroku do dodawania sprawdzania poprawności do aplikacji wielowarstwowych (rozwiązanie utworzone w Wskazówki: tworzenie aplikacji warstwowych tematu).
Z tego instruktażu dowiesz się, jak wykonać następujące zadania:
Automatycznie generuj klasy częściowe za pomocą Tworzenie i edytowanie wpisanych zestawów danych.
Dodaj kod do przeprowadzenia sprawdzenia poprawności po zmianie wartości w danej kolumnie.
Wymagania wstępne
W celu przeprowadzenia tego instruktażu należy wykonać:
Rozwiązanie i skojarzone projekty utworzone w Wskazówki: tworzenie aplikacji warstwowych.
Uzyskaj dostęp do przykładowej bazy danych Northwind.Aby uzyskać więcej informacji, zobacz Porady: instalacja przykładowych baz danych.
[!UWAGA]
Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Otwieranie rozwiązania NTierWalkthrough
Aby otworzyć rozwiązanie NTierWalkthrough
W menu Plik, wskaż Otwórz, kliknij przycisk Projekt/Rozwiązanie, a następnie przejdź do lokalizacji pliku NTierWalkthrough.sln.
[!UWAGA]
Plik NTierWalkthrough.sln jest tworzony w Wskazówki: tworzenie aplikacji warstwowych temacie i jest warunkiem wstępnym dla ukończenia tego instruktażu.Zakończ temat Wskazówki: tworzenie aplikacji warstwowych zapisując wszystkie projekty po zakończeniu, jeśli nie zostało to jeszcze zrobione.
Dodawanie sprawdzania poprawności, aby sprawdzić dane podczas zmiany poszczególnych kolumn
Procedura ta spowoduje dodanie sprawdzania poprawności, aby sprawdzić, że kolumna DataZamówienia w nowym porządku jest ustawiona na wartość bieżącej daty lub wcześniej.Wymaganie tej aplikacji jest takie, że kolumna DataZamówienia nie może zawierać daty, która jest późniejsza niż bieżąca; przyszłe zamówienia nie są dozwolone.
Aby dodać sprawdzanie poprawności, aby sprawdzić wartość wprowadzoną w tej kolumnie DataZamówienia.
Otwórz element zestawu danych w Tworzenie i edytowanie wpisanych zestawów danych przez dwukrotne kliknięcie pliku NorthwindDataSet.xsd w projekcie DataAccessTier w Eksploratorze rozwiązań.
Kliknij dwukrotnie kolumnę OrderDate w tabeli Zamówienia w projektancie.Ta akcja tworzy ColumnChanging programu obsługi zdarzeń.
[!UWAGA]
Projektant Zestawu danych nie tworzy automatycznie zdarzenia obsługi dla zdarzenia języka C#.Kod, który jest wymagany do obsługi zdarzeń w języku C# znajduje się w dalszej części tej procedury.SampleColumnChangingEvent jest tworzony i następnie jest podłączone do ColumnChanging zdarzenia w EndInit metodzie.
Dodaj kod, aby sprawdzić, czy e.ProposedValue dla kolumny OrderDate zawiera datę bieżącą lub wcześniejszą.Jeżeli proponowana wartość nie jest prawidłowa, należy ustawić kolumny, aby wskazać, że zawiera błąd.
Poniższy przykład kodu sprawdza, czy kolumna DataZamówienia zawiera bieżącą datę lub wcześniejszą.Jeśli wartość OrderDate jest datą nowszą niż bieżąca data, kolumna OrderDate zostanie ustawiona jako błąd.Else klauzula czyści ten błąd, jeśli DataZamówienia jest równa dzisiejszej lub wcześniejszej.
Wklej kod Visual Basic do narzędzia obsługi zdarzeń ColumnChanging.Wklej kod C# do OrdersDataTable deklaracji klasy.
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", ""); } } } } }
Testowanie aplikacji
Aby przetestować aplikację, należy zmienić wartość DataZamówienia kolumny na datę, która jest nieprawidłowa.
Aby przetestować aplikację
Naciśnij F5.
W formularzu pojawiają się dane z tabel Klienci i zamówienia.
W formancie DataGridView zawierającym zamówienia, zmień wartość w kolumnie OrderDate (dla dowolnego rekordu) na jutrzejszą datę.
Wyjdź z wiersza, aby zaakceptować zmianę.
Sprawdzanie poprawności nie powiedzie się i ikona błędu jest wyświetlana w komórce DataZamówienia, która zawiera nieprawidłową wartość.
Umieść wskaźnik myszy na ikonie błędu, aby wyświetlić błąd sprawdzania poprawności.
Zamknij formularz.
Następne kroki
W zależności od wymagań aplikacji, istnieje kilka kroków, które można wykonać po dodaniu sprawdzania poprawności do aplikacji wielowarstwowych.Na przykład można wprowadzić następujące rozszerzenie do tej aplikacji:
- Dodaj sprawdzanie poprawności, która sprawdza poprawność zmian, gdy cały rekord zostanie zmieniony.Aby uzyskać więcej informacji, zobacz Porady: dodawanie sprawdzania do warstwowego zestawu danych.