В качестве объяснения, DataTable содержит только 2 состояния для записи, Оригинал и Текущий. Ваш запрос потребует нескольких состояний.
Чтобы достичь желаемого, вы должны сбросить изменения в базу данных (например, Adapter.Update (таблица)) в ответ на успешное применение. Это продвигает ваш Текущий к оригиналу, и следующая Отмена может вернуться к этому.
Это может соответствовать или не соответствовать вашим требованиям.