Обнаружение ошибок в наборах данных

класс b datarow b экспонирует

Наборы данных и их дочерние объекты, такие, как таблицы и строки, имеют встроенную поддержку для отслеживания ошибок данных. Класс DataRow Экспонирует свойство RowError, В котором можно установить сообщение об ошибке, указывающее, что где-то в этой строке произошла ошибка, и дающее описательную информацию об этой ошибке. Говоря конкретнее, вы должны также, если нужно, устанавливать информацию об ошибке, ассоциированную с отдельными полями данных, которые явились причиной ошибки. Для этого вы вызываете метод setCo — LumnError Класса DataRow. Метод имеет три перегрузки. Первая принимает ссылку типа DataColumn И сообщение об ошибке как строку.

Обычно эти ошибки будут устанавливаться ADO. NET в ответ на ошибку при исполнении запроса к базе данных, но в развитых сценариях вы можете устанавливать их вручную, как показано в этом примере.

Когда устанавливаются какие-либо ошибки в наборе данных, являющемся источником данных для элемента управления DataGridview , То в зависимости от этих ошибок сетка будет отображать значки ошибки строки и ошибки ячейки, как было описано ранее. Это происходит потому, что класс DataRowView, Являющийся действительным источником отображаемых в сетке данных, реализует интерфейс IDataErrorlnfo, Делающий эту информацию об ошибке непосредственно доступной для любого элемента управления, которому при этом нет надобности знать объектную модель конкретного типа источника данных, чтобы обнаруживать ошибки в этом источнике. Если для любого столбца в строе или самой строки была установлена ошибка, то считается, что и в самой таблице имеются ошибки, как и в содержащем ее наборе данных. Если вы знаете, что работаете с набором данных, то можете воспользоваться объектной моделью набора данных для извлечения информации об ошибках в этом наборе. Оба класса DataSet И DataTable Экспонируют булево свойство HasErrors, Которое можно проверить, чтобы узнать, имеются ли какие-либо строки с ошибками. Если свойство HasErrors Набора данных возвращает true, вы можете итерировать коллекцию Tables Набора данных и определить, в какой таблице имеют место проблемы, проверяя свойство HasErrors Каждой таблицы.