Поделиться через


Практическое руководство. Проверка данных в ходе изменения строк

Обновлен: Ноябрь 2007

Проверка данных представляет собой процесс проверки значений, введенных в приложении. Рекомендуется проверять эти значения перед отправкой обновлений в базовое хранилище данных. Это уменьшает потенциальное количество циклов пересылки между приложением и хранилищем данных.

1120xds5.alert_note(ru-ru,VS.90).gifПримечание.

Конструктор наборов данных создает разделяемый класс, где в набор данных может добавляться логика проверки. Набор данных, созданный в конструкторе, не будет удалять или изменять какой-либо код в разделяемом классе.

Можно проверять данные при изменении значений в строках в ответ на событие RowChanging. При возникновении это событие передает аргумент события (e.Row), содержащий значение, предлагаемое по умолчанию для текущего столбца. В зависимости от содержимого каждого столбца в e.Row можно выполнять следующие действия:

  • Принять предложенное значение, не выполняя никаких действий.

  • Отклоните предложенное значение, задав ошибку столбца (SetColumnError) из обработчика событий изменения строки.

  • Можно также использовать элемент управления ErrorProvider для отображения пользователю сообщения об ошибке. Дополнительные сведения см. в разделе Компонент ErrorProvider (Windows Forms).

Можно также выполнить проверку во время изменения отдельных столбцов с помощью события ColumnChanging. Дополнительные сведения см. в разделе Практическое руководство. Проверка данных в ходе изменения столбцов.

Проверка данных в событии RowChanging

Можно написать код, чтобы убедиться, что каждый столбец, который требуется проверить, содержит данные, удовлетворяющие требованиям приложения. Если предложенное значение является недопустимым, укажите столбец для индикации наличия ошибки. В следующем примере задается ошибка столбца при Quantity, равном 0 или меньше. Обработчики событий изменения строк должны напоминать следующие примеры.

Для проверки данных при изменении строки (Visual Basic):

  1. Откройте набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Практическое руководство. Открытие набора данных в конструкторе наборов данных.

  2. Дважды щелкните строку заголовка таблицы, которую требуется проверить. Это действие автоматически создает обработчик событий RowChangingDataTable в файле разделяемого класса набора данных.

    1120xds5.alert_note(ru-ru,VS.90).gifСовет.

    Дважды щелкните слева от имени таблицы для создания обработчика событий изменения строки таблицы. Если дважды щелкнуть имя таблицы, можно изменить его.

    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#):

  1. Откройте набор данных в Конструкторе наборов данных. Дополнительные сведения см. в разделе Практическое руководство. Открытие набора данных в конструкторе наборов данных.

  2. Дважды щелкните строку заголовка таблицы, которую требуется проверить. Это действие создает файл разделяемого класса для DataTable.

    1120xds5.alert_note(ru-ru,VS.90).gifПримечание.

    Конструктор наборов данных не создает автоматически обработчик событий для события RowChanging. Чтобы подключить событие в методе инициализации таблицы, необходимо создать метод обработки события RowChanging и выполнить код.

  3. Скопируйте следующий код в разделяемый класс:

        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#)

Другие ресурсы

Пошаговые руководства работы с данными

Проверка данных