Практическое руководство. Проверка данных в ходе изменения строк
Обновлен: Ноябрь 2007
Проверка данных представляет собой процесс проверки значений, введенных в приложении. Рекомендуется проверять эти значения перед отправкой обновлений в базовое хранилище данных. Это уменьшает потенциальное количество циклов пересылки между приложением и хранилищем данных.
Примечание. |
---|
Конструктор наборов данных создает разделяемый класс, где в набор данных может добавляться логика проверки. Набор данных, созданный в конструкторе, не будет удалять или изменять какой-либо код в разделяемом классе. |
Можно проверять данные при изменении значений в строках в ответ на событие RowChanging. При возникновении это событие передает аргумент события (e.Row), содержащий значение, предлагаемое по умолчанию для текущего столбца. В зависимости от содержимого каждого столбца в e.Row можно выполнять следующие действия:
Принять предложенное значение, не выполняя никаких действий.
Отклоните предложенное значение, задав ошибку столбца (SetColumnError) из обработчика событий изменения строки.
Можно также использовать элемент управления ErrorProvider для отображения пользователю сообщения об ошибке. Дополнительные сведения см. в разделе Компонент ErrorProvider (Windows Forms).
Можно также выполнить проверку во время изменения отдельных столбцов с помощью события ColumnChanging. Дополнительные сведения см. в разделе Практическое руководство. Проверка данных в ходе изменения столбцов.
Проверка данных в событии RowChanging
Можно написать код, чтобы убедиться, что каждый столбец, который требуется проверить, содержит данные, удовлетворяющие требованиям приложения. Если предложенное значение является недопустимым, укажите столбец для индикации наличия ошибки. В следующем примере задается ошибка столбца при Quantity, равном 0 или меньше. Обработчики событий изменения строк должны напоминать следующие примеры.
Для проверки данных при изменении строки (Visual Basic):
Откройте набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Практическое руководство. Открытие набора данных в конструкторе наборов данных.
Дважды щелкните строку заголовка таблицы, которую требуется проверить. Это действие автоматически создает обработчик событий RowChangingDataTable в файле разделяемого класса набора данных.
Совет. Дважды щелкните слева от имени таблицы для создания обработчика событий изменения строки таблицы. Если дважды щелкнуть имя таблицы, можно изменить его.
Private Sub Order_DetailsDataTable_Order_DetailsRowChanging(ByVal sender As System.Object, _ ByVal e As Order_DetailsRowChangeEvent) Handles Me.Order_DetailsRowChanging If CType(e.Row.Quantity, Short) <= 0 Then e.Row.SetColumnError("Quantity", "Quantity must be greater than 0") Else e.Row.SetColumnError("Quantity", "") End If End Sub
Для проверки данных при изменении строки (C#):
Откройте набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Практическое руководство. Открытие набора данных в конструкторе наборов данных.
Дважды щелкните строку заголовка таблицы, которую требуется проверить. Это действие создает файл разделяемого класса для DataTable.
Примечание. Конструктор наборов данных не создает автоматически обработчик событий для события RowChanging. Чтобы подключить событие в методе инициализации таблицы, необходимо создать метод обработки события RowChanging и выполнить код.
Скопируйте следующий код в разделяемый класс:
public override void EndInit() { base.EndInit(); Order_DetailsRowChanging += TestRowChangeEvent; } public void TestRowChangeEvent(object sender, Order_DetailsRowChangeEvent e) { if ((short)e.Row.Quantity <= 0) { e.Row.SetColumnError("Quantity", "Quantity must be greater than 0"); } else { e.Row.SetColumnError("Quantity", ""); } }
См. также
Задачи
Практическое руководство. Подключение к данным в базе данных
Практическое руководство. Проверка данных в ходе изменения столбцов
Пошаговое руководство. Отображение данных на форме в приложении Windows
Основные понятия
Общие сведения об адаптере таблиц
Общие сведения об источниках данных
Ссылки
События (Руководство по программированию в C#)