Об элементе управления GridView в asp.net - PullRequest
0 голосов
/ 30 декабря 2010

Я работаю над веб-приложением, на одной странице я вставляю записи в базу данных и хочу отобразить данные в GridView, но на другой странице. Как я могу это сделать?

Я знаю, как отображать записи в GridView, но я хочу знать, есть ли две веб-страницы, на одной странице предусмотрена возможность вставки записей, и вы хотите отобразить записи в бите GridView на второй странице.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2010

Следуя тому, что сказал DOK, также намного проще проверять данные, введенные вашими пользователями в вашей бизнес-логике, прежде чем вы отправите их в базу данных.

Во-вторых, пользователи могут часто менять свое мнение о данных на веб-странице. Данные в Интернете могут находиться в частично законченном состоянии или содержать опечатки или ошибки. Если кто-то еще увидит эти данные и посчитает, что их необходимо заполнить, вы можете получить дублированные записи в базе данных, которые затем потребуют сверки.

Честно говоря, вам лучше всего использовать объект Session для хранения временных пользовательских данных. Запись MSDN для события GridView RowEditing содержит отличный исходный код для этого подхода. Всякий раз, когда мне нужно использовать GridView для обработки данных из базы данных, я имитирую это.

Помимо обработки проблем с временным хранением данных, вы можете сравнить объект Session с результатами вашей базы данных, чтобы определить, были ли добавлены новые строки. Это несколько дорого, так как включает в себя перегрузку метода Equals (и GetHashCode, если вы следуете рекомендациям Microsoft) и использование Equals для перебора двух коллекций, сравнения свойств обоих объектов и определения новых записей на основе записей. которые не существуют в вашем объекте Session, но существуют в вашем объекте базы данных.

Стоит также отметить, что этот подход предполагает, что вы не удаляете данные из своей базы данных, а устанавливаете статус записи в вашей базе данных как «Удалено» - если это логическое поле или последовательность кодов, которые вы используете описать состояние строк в таблице.

0 голосов
/ 30 декабря 2010

Хотя можно сохранить вставляемые данные, не извлекая их из базы данных, я думаю, что лучше сохранить данные на первой странице и извлечь их из базы данных на второй странице.

Вы можете сделать это, написав встроенный SQL или хранимую процедуру. Одним из простых подходов было бы передать набор результатов в DataTable и привязать к нему GridView.

Это требует больше работы - больше кода и больше поездок в базу данных. Тем не менее, я думаю, что при выполнении INSERT очень полезно, чтобы веб-страница обновлялась для отображения того, что фактически попало в базу данных . Иногда это отличается от того, что, по мнению пользователя, он ввел, и он сразу видит проблему.

Один вопрос будет , как определить данные, которые были только что вставлены . Я могу придумать несколько способов сделать это. Одним из них является запрос всех записей, введенных сегодня лицом, вошедшим в систему (что записано в столбцах CreatedBy и CreatedDate таблиц базы данных). Сортируйте набор результатов в порядке убывания CreatedDate, чтобы самые последние записи отображались в верхней части GridView. Другой способ заключается в назначении номера партии для ввода данных и извлечении только данных в этой партии.

Если вы действительно хотите сохранить данные, вы можете поместить их в сеанс на первой странице, а затем извлечь их из сеанса для отображения на второй странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...