Подход к обработке операций 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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