Следуя тому, что сказал DOK, также намного проще проверять данные, введенные вашими пользователями в вашей бизнес-логике, прежде чем вы отправите их в базу данных.
Во-вторых, пользователи могут часто менять свое мнение о данных на веб-странице. Данные в Интернете могут находиться в частично законченном состоянии или содержать опечатки или ошибки. Если кто-то еще увидит эти данные и посчитает, что их необходимо заполнить, вы можете получить дублированные записи в базе данных, которые затем потребуют сверки.
Честно говоря, вам лучше всего использовать объект Session для хранения временных пользовательских данных. Запись MSDN для события GridView RowEditing содержит отличный исходный код для этого подхода. Всякий раз, когда мне нужно использовать GridView для обработки данных из базы данных, я имитирую это.
Помимо обработки проблем с временным хранением данных, вы можете сравнить объект Session с результатами вашей базы данных, чтобы определить, были ли добавлены новые строки. Это несколько дорого, так как включает в себя перегрузку метода Equals (и GetHashCode, если вы следуете рекомендациям Microsoft) и использование Equals для перебора двух коллекций, сравнения свойств обоих объектов и определения новых записей на основе записей. которые не существуют в вашем объекте Session, но существуют в вашем объекте базы данных.
Стоит также отметить, что этот подход предполагает, что вы не удаляете данные из своей базы данных, а устанавливаете статус записи в вашей базе данных как «Удалено» - если это логическое поле или последовательность кодов, которые вы используете описать состояние строк в таблице.