Раскрасим строки tRAININGDataGridView в зависимости от значения поля «Документ» (DOCUM).
Для этого пропишем в событии CellFormatting у tRAININGDataGridView:
Подстрока Cells[3] - порядковый номер (нумерация колонок начинается с 0) колонки для поля DOCUM в tRAININGDataGridView (Рис. 28).
Рис. 28
Добавленный нами код окрашивает фон в зеленый цвет для тех строк tRAININGDataGridView, значение поля DOCUMENT у которых равно строке «диплом» (Рис. 29).
Рис. 29
Обработка ошибок
В нашей БД таблицы PERSONAL и DEPARTMENT связаны с отношением М:1. В БД у нас установлены ограничения целостности для поля внешнего ключа DEP_CODE таблицы
PERSONAL. Что произойдет при попытке удалить запись в таблице DEPARTMENT с информацией об отделе, на который уже ссылаются записи из таблицы PERSONAL?
Запустим программу и, в окне соответствующего справочника, попробуем удалить запись со сведениями об отделе «Бухгалтерия». Сохраните изменения в БД, нажав на кнопку BindingNavigator с изображением дискеты. Появится сообщение об ошибке (исключении):
Рис. 30
Исключение – это реакция на ошибку, сгенерированную приложением.
Защита нашей БД работает. Все изменение приводящие к нарушению целостности БД будут невозможны. После перезапуска программы, убедитесь, что все записи таблицы DEPARTMENT остались на месте.
Однако получается, что при каждом неверном действии со стороны пользователя – наше приложение будет закрываться с сообщением об ошибке. Это не есть хорошо.
Исправим данную ситуацию.
Обработчик ошибок – это блок кода, который может обнаружить исключения и выполнить необходимые действия для исправления этой ошибки.
Чтобы их обработать, можно использовать различные конструкции, например, конструкцию try…catch.
Если в блоке try генерируется исключение, то программа автоматически переходит в блок catch.
Если никаких исключений не генерируется, то программа пропускает блок catch.
Обработаем исключения, возникающие при сохранении данных в справочнике отделов. Для этого в коде формы данного справочника (Form2) заменим блок сохранения.
Было:
Станет:
Теперь при возникновении исключительных ситуаций будет выводиться такой диалог (Рис. 31):
Рис. 31
Текст сообщения будет меняться в зависимости от ошибки. Сам текст ошибки генерирует
СУБД (в данном случае мы обрабатываем ошибки сохранения данных в БД). После нажатия
«Ок» все изменения в наборе данных будут отменены, и продолжится выполнение программы.
В ряде случаев, нет необходимости пугать пользователя служебной информацией о характере ошибки. Тогда сообщение можно заменить на свое, например:
Возникновение ошибки будет выводить на экран следующий диалог (Рис. 32):
Рис. 32