none
Как запретить удалять запись из DataGridView у которой есть зависимости в другой таблице? RRS feed

  • Вопрос

  • Добрый день!

    Имеется: форма, на которой посредством DataGridView и BindingNavigator выводится таблица, которая является справочником товара. И есть таблицы, в которые этот товар подставляется по ключу.

    Удаление товара, у которого есть зависимости, приводит к ошибке.

    Подскажите пожалуйста, как мне реализовать одну из следующих возможностей:

    1. Обработать намерение удалить строку (какое событие надо обработать?), предупредить о последствиях, и предоставить выбор пользователю.

    2. Запретить удаление именно тех строк, удаление которых приведет к ошибкам зависимостей (связей).

    3. Удалять все зависимые строки из всех таблиц, при удалении строки из этой таблицы (справочника)

     

    Спасибо за помощь!


    Свободы призрак мной гоним...
    • Перемещено Abolmasov Dmitry 3 августа 2011 г. 11:27 (От:Работа в среде Visual Studio)

Ответы

  • Здравствуйте.

    1. Обрабатывайте событие DataGridView.UserDeletingRow, если необходима отмена удаления, то выставлять e.Cancel = true;

    2. В обработчике сохранения изменений обрабатывать в try-catch вызов обновления источника данных и при ошибке (блок catch) выводить сообщение, что строку нельзя удалить.

    3. В БД для связанных таблиц должно быть включено каскадное удаление (тогда пункта 2 не будет).


    Для связи [mail]