Я сделал одну из двух вещей в зависимости от потребностей приложения.
1) Вы можете сохранить в базе данных по строке после того, как в одной строке произошло добавление / редактирование / удаление.
2) Вы можете обрабатывать их все одновременно и использовать различные типы (добавлять / редактировать / удалять), используя DataSet.GetChanges (потому что вы должны только обрабатывать / сохранять изменения) и обрабатывать каждый тип иначе (при необходимости). Это обычно с петлей.
Дополнительно, если у вас есть TableAdapter . Вы можете просто использовать команды вставки / обновления по мере необходимости. Они будут пакетную обработку для вас.