Практическое руководство. Проверка данных в ходе изменения столбцов
Обновлен: Ноябрь 2007
Проверка данных представляет собой процесс проверки значений, введенных в приложении. Рекомендуется выполнять проверку этих значений до отправки обновлений в базовое хранилище данных, это уменьшает потенциальное количество циклов обработки между приложением и хранилищем данных.
Примечание. |
---|
Конструктор наборов данных создает разделяемый класс, где в набор данных может добавляться логика проверки. Набор данных, созданный в конструкторе, не будет удалять или изменять какой-либо код в разделяемом классе. Дополнительные сведения см. в разделе Практическое руководство. Расширение функциональных возможностей набора данных. |
Можно проверять данные, когда значение в столбце данных изменяется в ответ на событие ColumnChanging. При возникновении это событие передает аргумент события (ProposedValue), содержащий значение, предлагаемое для текущего столбца. В зависимости от содержания предлагаемого значения e.ProposedValue можно выполнять следующие действия.
Принять предложенное значение, не выполняя никаких действий.
Отклонить предложенное значение, задав ошибку столбца (SetColumnError) из обработчика событий изменения столбца.
Можно также использовать элемент управления ErrorProvider для отображения пользователю сообщения об ошибке. Дополнительные сведения см. в разделе Компонент ErrorProvider (Windows Forms).
Проверку можно также выполнять во время события RowChanging. Дополнительные сведения см. в разделе Практическое руководство. Проверка данных в ходе изменения строк.
Для проверки данных при изменение значений в столбце:
Откройте набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Практическое руководство. Открытие набора данных в конструкторе наборов данных.
Дважды щелкните столбец, который требуется проверить. В результате этого действия создается обработчик событий ColumnChanging для DataTable.
Примечание. Конструктор наборов данных не создает автоматически обработчик событий для события C#. Код, необходимый для обработки события, представлен ниже.
Добавьте код для проверки данных, содержащихся в e.ProposedValue, на соответствие требованиям приложения. Если предложенное значение не является допустимым, покажите, что столбец содержит ошибку.
Следующий код устанавливает ошибку столбца, когда значение в столбце Quantity меньше или равно нулю. Обработчик событий изменения столбца должен выглядеть примерно следующим образом:
'Visual Basic Private Sub Order_DetailsDataTable_ColumnChanging(ByVal sender As System.Object, ByVal e As System.Data.DataColumnChangeEventArgs) _ Handles Me.ColumnChanging 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 End Sub // C# // Add this code to the DataTable // partial class. public override void EndInit() { base.EndInit(); 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", ""); } } }
См. также
Задачи
Пошаговое руководство. Отображение данных на форме в приложении Windows
Практическое руководство. Проверка данных элемента управления DataGridView в Windows Forms
Практическое руководство. Подключение к данным в базе данных
Основные понятия
Общие сведения об адаптере таблиц
Общие сведения об источниках данных