Подход к обработке операций CRUD с двумя связанными DataGridViews и кнопкой «Сохранить изменения»C#

Место общения программистов C#
Anonymous
Подход к обработке операций CRUD с двумя связанными DataGridViews и кнопкой «Сохранить изменения»

Сообщение Anonymous »

В настольном приложении C# у меня есть два связанных DataGridViews (dgvAlgorithm и dgvParameter) и кнопка сохранения изменений (btnSave). Оба DataGridViews связаны с тремя таблицами: (алгоритм, параметр, алгоритм_параметр). При нажатии на алгоритм загружаются его параметры и характеристики (идентификатор, имя, тип).
Я хочу обрабатывать необходимые события для действий CRUD как для алгоритмов, так и для параметров, чтобы все изменения можно было вносить, но они вступали в силу только при нажатии кнопки «Сохранить». Как мне к этому подойти?
На данный момент моя идея состоит в том, чтобы создать списки BindingLists, чтобы я мог контролировать изменения значений полей, когда они изменяются непосредственно в DataGridViews. Я использую событие dgv row_validated: когда я создаю новые записи, я делаю это, устанавливая id = 0 (их еще нет в таблицах базы данных). Если они изменены, они сохраняют тот же идентификатор. Но при удалении записей я устанавливал их id=-1, чтобы знать, что мне следует их удалить. Однако эта последняя часть меняет только идентификатор, и запись по-прежнему отображается в DataGridView, чего я не хочу (если я удалю запись в DataGridView, даже временно, я не хочу, чтобы она отображалась в DataGridView, а установка значения -1 только помечает ее для будущего удаления, но не удаляет ее из DataGridView).
Есть идеи? Другой подход, который был бы более правильным? Заранее спасибо за уделенное время.

Подробнее здесь: https://stackoverflow.com/questions/797 ... nd-save-ch

Вернуться в «C#»