События набора данных и адаптера данных

однако иногда вам нужно быть

До сих пор я обсуждал только программирование с методами и свойствами наборов данных и адаптеров данных, а также обработку исключений, когда что-то идет не так. Однако иногда вам нужно быть поближе к тому, что происходит в процессе обработки. Имеется ряд событий из классов DataSet, DataTable И SqlDataAdapter, К Которым вы можете подключиться, чтобы ваш код мог получать уведомления при изменениях в данных. Класс DataSet Имеет два события: MergeFailed, Которое запускается, если вы выполняете операцию Merge и имеет место конфликт первичного ключа между целевой и исходной таблицами. Initialized, Которое запускается, когда DataSet Завершит инициализацию содержащихся в нем объектов и состояния. Наиболее полезные события имеет DataTable; Они описаны в таблице Г.4.

События ColumnChanging/ColumnChanged Передают вашему обработчику события параметр типа DataColumnChangeEventArgs. Этот параметр содержит несколько значений, полезных для контроля над обновлением столбца. Свойство для чтения/записи с именем ProposedValue Содержит значение, которое будет иметь изменяемый столбец после того, как обработчик события завершится. Вы можете инспектировать это значение в своем обработчике ColumnChanging, И в комбинации со свойствами row и Column Параметра аргументов события верифицировать его и принять решение об изменении этого значения. Если предполагаемое значение не отвечает вашим ограничениям верификации, у вас есть две возможности. Во-первых, вы можете изменить его на некоторое приемлемое значение, присвоив другое значение соответствующего типа свойству ProposedValue Параметра аргументов события. Если вы делаете это, любое значение, которое вы присвоите свойству, станет тем, что будет действительно установлено для столбца, когда изменение будет сделано. Поэтому вы могли бы также изменить предполагаемое значение на первоначальное, которое можно извлечь через свойства Row И Column, Как показано здесь, чтобы фактически предотвратить изменение:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *