Пошаговое руководство. Добавление проверки в набор данных
В этом пошаговом руководстве демонстрируется проверка данных при внесении изменений в данные из набора данных. Условия для выполнения проверок данных зависят от требований вашего приложения; в этом пошаговом руководстве мы проверяем данные при изменении значений в отдельных столбцах. В этом руководстве используется событие ColumnChanging, подтверждающее, что в запись вводится правильное значение. Если это значение не является допустимым, пользователю отображается элемент управления ErrorProvider.
Этот пример также показывает, как использовать Конструктор наборов данных в целях создания разделяемого класса для набора данных. (Разделяемый класс — это класс, в котором пользователи могут добавлять код для расширения функциональности сформированного Visual Studio набора данных. Он не перезаписывается при повторном создании набора данных.)
Примечание
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Настройка параметров разработки в Visual Studio.
В данном пошаговом руководстве представлены следующие задачи.
Создание нового проекта Приложение Windows.
Создание и настройка набора данных с помощью мастер настройки источника данных.
Выбор элемента управления, создаваемого на форме при перетаскивании элементов из окна Источники данных. Для получения дополнительной информации см. Практическое руководство. Установка элемента управления, создаваемого при перетаскивании из окна "Источники данных".
Создание элемента управления с привязкой к данным с помощью перетаскивания элементов из окна окно "Источники данных" на форму.
Создание разделяемого класса для расширения функциональности набора данных.
Создание обработчика событий для события ColumnChanging таблицы OrderDetails.
Добавление проверки, подтверждающей, что столбец Quantity содержит значения больше 0.
Отображение Компонент ErrorProvider (Windows Forms) для уведомления пользователей о том, что элемент управления с привязкой к данным содержит недопустимые значения.
Обязательные компоненты
Для выполнения данного пошагового руководства требуется:
- Доступ к примеру базы данных "Борей". Для получения дополнительной информации см. Практическое руководство. Установка образцов баз данных.
Создание нового приложения Windows
Порядок создания нового проекта приложения Windows
Перейдите в меню Файл и создайте новый проект.
Присвойте проекту имя ValidationWalkthrough.
Выберите Приложение Windows и нажмите кнопку ОК. Для получения дополнительной информации см. Разработка клиентских приложений с использованием .NET Framework.
Создается проект ValidationWalkthrough, который добавляется в Обозреватель решений.
Создание нового источника данных из вашей базы данных
Создание источника данных
В меню Данные выберите команду Показать источники данных.
В окне Источники данных выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.
На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.
На странице Выбор подключения к базе данных выполните одно из следующих действий.
Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.
-или-
Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение.
Если базе данных требуется пароль, выберите параметр для включения конфиденциальных данных и щелкните Далее.
На странице Сохранение подключения в файле конфигурации приложения нажмите кнопку Далее.
Разверните узел Таблицы на странице Выбор объектов базы данных.
Выберите таблицу Сведения о заказе и нажмите Готово.
Объект NorthwindDataSet добавляется в проект, и таблица OrderDetails отображается в окне Источники данных.
Создание элементов управления с привязкой к данным
Создание элементов управления с привязкой к данным на форме
В окне Источники данных выберите таблицу Сведения о заказе.
Выберите Сведения из списка управления таблицы.
Перетащите узел Сведения о заказе из окна Источники данных на Form1.
Привязанные к данным элементы управления с метками описания отображаются на форме вместе с панелью инструментов (BindingNavigator) для перемещения по записям. Привязанные к данным элементы управления с метками описания отображаются на форме вместе с панелью инструментов (BindingNavigator) для перемещения по записям. В области компонентов появляется NorthwindDataSet, Order_DetailsTableAdapter, BindingSource и BindingNavigator.
Добавление элемента управления ErrorProvider на форму
Настройка элемента управления ErrorProvider
Перетащите элемент управления ErrorProvider из области элементов на Form1.
В окне Свойства задайте для свойства DataSource объекта ErrorProvider значение Order_DetailsBindingSource.
Примечание
Не задавайте свойство DataMember.
Создание обработчика событий ColumnChanging
Создание обработчиков событий проверки
Откройте NorthwindDataSet в Конструкторе наборов данных, дважды щелкнув файл NorthwindDataSet.xsd в Обозревателе решений.
Дважды щелкните столбец Quantity в таблице OrderDetails, чтобы создать обработчик событий OrderDetailsDataTable_ColumnChanging. (В C# создается только разделяемый класс таблицы данных.)
Примечание
При двойном щелчке имени таблицы (Сведения о заказе в заголовке окна) создается обработчик событий для события RowChanging.
Добавьте код для проверки того, что e.ProposedValue содержит значения больше 0. Если предложенное значение меньше или равно 0, настройте столбец на отображение ошибки.
Вставьте следующий код в обработчик событий, изменяющий столбец, под комментарием Добавьте здесь пользовательский код:
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
// C# // Add the following code // to the partial class. 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", ""); } }
Тестирование приложения
Тестирование приложения
Нажмите клавишу F5 для запуска приложения.
Измените значение текстового поля Количество на 0.
Нажмите клавишу TAB, чтобы убрать фокус с этого текстового поля.
Отображается значок поставщика ошибок.
Наведите указатель мыши на поставщик ошибок, чтобы просмотреть сообщение.
Следующие действия
В зависимости от требований приложения существуют несколько шагов, которые, возможно, потребуется выполнить после добавления проверки. Ниже приводится перечень рекомендаций, позволяющих улучшить полученный результат.
Добавление функциональности для отправки обновлений в базу данных. Для получения дополнительной информации см. Пошаговое руководство. Сохранение данных в базе данных (одна таблица).
Изменение набора данных для добавления или удаления объектов базы данных. Для получения дополнительной информации см. Практическое руководство. Редактирование набора данных.
См. также
Основные понятия
Привязка элементов управления Windows Forms к данным в Visual Studio
Подготовка приложения к получению данных
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении