Jak: Dodawanie sprawdzania poprawności DataSet wielowarstwowej
Dodawanie sprawdzania poprawności DataSet, rozdzielane do roztworu n warstwowych zasadniczo jest taki sam, jak dodawanie sprawdzania poprawności do pojedynczego pliku zestawu danych (element dataset pojedynczego projektu).Sugerowane lokalizacją sprawdzaniu poprawności danych jest podczas ColumnChanging lub RowChanging zdarzenia tabeli danych.
Tworzenie i edytowanie wpisanych zestawów danych Zawiera funkcje do tworzenia klasy częściowe, do których można dodać kod użytkownika do kolumny i wiersza zmiana zdarzenia tabele danych w zestawie danych.Aby uzyskać więcej informacji na temat dodawania kodu DataSet w roztworze wielowarstwowej zobacz Jak: dodawanie kodu do zestawów danych w aplikacji wielowarstwowej, i Jak: dodawanie kodu do TableAdapters w aplikacji wielowarstwowej.Aby uzyskać więcej informacji na temat klasy częściowe zobacz Jak: podzielić klasę na częściowe klas (Projektant klasy) lub Częściowe klasy i metody (Podręcznik programowania C#).
[!UWAGA]
Kiedy oddzielnych zestawów danych z TableAdapters (przez ustawienie Projektu DataSet właściwości), istniejących klas częściowego zestawu danych w projekcie nie zostaną przeniesione automatycznie.Istniejące klasy częściowego zestawu danych musi być przeniesiona ręcznie projektu dataset.
[!UWAGA]
Projektant Dataset nie tworzy automatycznie obsługi zdarzeń w języku C# dla ColumnChanging i RowChanging zdarzenia.Należy ręcznie utworzyć procedurę obsługi zdarzeń i hook obsługi zdarzeń do podstawowej zdarzeń.Poniższe procedury zawierają kroki, aby utworzyć wymaganych zdarzeń w języku Visual Basic i C#.
Sprawdzanie poprawności zmiany poszczególnych kolumn
Obsługa sprawdzania poprawności wartości w poszczególnych kolumnach ColumnChanging zdarzenia.ColumnChanging Zdarzenie jest wywoływane, gdy wartość w kolumnie jest modyfikowana.Utwórz moduł obsługi zdarzenia ColumnChanging zdarzeń, klikając dwukrotnie żądaną kolumnę na Tworzenie i edytowanie wpisanych zestawów danych.
Dwukrotnie kliknij kolumnę, po raz pierwszy Projektant generuje obsługi zdarzenia ColumnChanging zdarzenia.Dodatkowo do ColumnChanging zdarzenie, If…Then instrukcji tworzony jest także sprawdzający dla określonej kolumny.Na przykład poniższy kod jest generowany, podwójne kliknięcie kolumny DataDostawy na tabeli zamówienia Northwind:
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
[!UWAGA]
W języku C# projektów Projektant Dataset tworzy tylko klasy częściowe dataset i poszczególnych tabel w zestawie danych.Projektant Dataset nie tworzy automatycznie programy obsługi zdarzeń dla ColumnChanging i RowChanging zdarzenia w języku C#, jak w języku Visual Basic.W C# projektów należy ręcznie utworzyć metody obsługi zdarzenia i hook metody do podstawowej zdarzeń.Poniższa procedura zawiera kroki, aby utworzyć wymaganych zdarzeń w języku Visual Basic i C#.
[!UWAGA]
Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.
Aby dodać sprawdzania poprawności podczas zmiany wartości poszczególnych kolumn
Otwórz element dataset w Tworzenie i edytowanie wpisanych zestawów danych przez dwukrotne kliknięcie xsd plik w oknie Solution Explorer.Aby uzyskać więcej informacji, zobacz Jak: Otwórz element Dataset w projektancie zestawu danych.
Dwukrotnie kliknij kolumnę, którą chcesz sprawdzić.Ta akcja tworzy ColumnChanging obsługi zdarzeń.
[!UWAGA]
Projektant Dataset nie tworzy automatycznie obsługi zdarzeń dla zdarzenia C#.Poniżej znajduje się kod niezbędne do obsługi zdarzeń w języku C#.SampleColumnChangingEventjest tworzony i następnie jest maksymalnie złapać ColumnChanging zdarzeń w EndInit metody.
Dodawanie kodu do sprawdzenia, czy e.ProposedValue zawiera dane, które spełnia wymagania aplikacji.Jeżeli proponowana wartość jest niedopuszczalne, należy ustawić kolumnę, aby wskazać, że zawiera błąd.
Poniższy przykład kodu sprawdza ilość kolumna zawiera więcej niż.Jeśli ilość jest mniejsza niż lub równa 0, kolumna ustawiono błąd.Else Klauzuli czyści błąd, jeśli ilość jest większa niż 0.Kod obsługi zdarzenia Zmiana kolumny powinna wyglądać następująco:
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", ""); } } }
Zatwierdzanie zmian całych wierszy
Obsługa sprawdzania poprawności wartości w całych wierszy RowChanging zdarzenia.RowChanging Zdarzenie jest wywoływane, gdy wartości w kolumnach wszystkie są zobowiązane.Należy sprawdzić w RowChanging zdarzenie, kiedy wartość w jednej kolumnie opiera się na wartości w innej kolumnie.Rozważmy na przykład DataZamówienia i DataDostawy w tabeli zamówienia w bazie danych Northwind.Po wprowadzeniu zamówień sprawdzania poprawności sprawdza, czy zamówienie nie jest wprowadzana z DataDostawy, który jest w lub przed DataZamówienia.W tym przykładzie wartości dla kolumn DataWymagana i DataZamówienia muszą zostać porównane, sprawdzanie poprawności zmiany poszczególnych kolumn nie ma sensu.
Utwórz moduł obsługi zdarzenia RowChanging zdarzeń, klikając dwukrotnie nazwę tabeli w pasku tytułu tabeli na Tworzenie i edytowanie wpisanych zestawów danych.
Aby dodać sprawdzania poprawności podczas zmiany do całych wierszy
Otwórz element dataset w Tworzenie i edytowanie wpisanych zestawów danych przez dwukrotne kliknięcie xsd plik w oknie Solution Explorer.Aby uzyskać więcej informacji, zobacz Jak: Otwórz element Dataset w projektancie zestawu danych.
Kliknij dwukrotnie pasek tytułu tabeli danych na projektanta.
Częściowe klasy jest tworzony z RowChanging obsługi zdarzeń i otwiera Edytor kodu.
[!UWAGA]
Projektant Dataset nie tworzy automatycznie obsługi zdarzenia RowChanging zdarzenia w C# projektów.Należy utworzyć metody obsługi RowChanging zdarzeń i wykonywanie kodu spięcie zdarzeń w tabeli metody inicjacji.
Dodaj kod użytkownika wewnątrz deklaracji klasy częściowe.
Poniższy kod pokazuje, gdzie można dodać kod użytkownika do sprawdzania poprawności podczas RowChanging zdarzenia dla języka 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
Poniższy kod przedstawia sposób tworzenia RowChanging obsługi zdarzeń i gdzie można dodać kod użytkownika do sprawdzania poprawności podczas RowChanging zdarzenia dla języka 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 = ""; } } }
Zobacz też
Zadania
Instruktaż: Tworzenie aplikacji wielowarstwowej danych
Koncepcje
Co nowego w projektowaniu danych aplikacji w Visual Studio 2012