Reden Rodriguez Ответов: 3

Есть ли способ загрузить миллион данных в datagrid и избежать сбоя веб-приложения?


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

Что я уже пробовал:

я попытался ограничить свои данные, и исключение исчезло, но я хочу представить все данные в datagridview или отфильтровать все данные в datagridview, не устанавливая ограничения в операторе SQL.

Gerry Schmitz

Да; это называется "пейджинг"; и есть "стандартные" ASP.NET элементы управления, которые сделают это. Вы идете по тому же пути, что и 1000 нубов до вас ... и это не самый правильный путь.

3 Ответов

Рейтинг:
2

OriginalGriff

Даже не думай об этом.
Это не только займет значительное время, память и, вероятно, приведет к сбою или замораживанию вашего приложения, но и обеспечит ужасный пользовательский опыт.

Подумайте об этом: вы загружаете миллион строк, и это работает. Теперь я хочу, чтобы вы нашли один ряд, который вас интересует, и сказали мне, когда найдете его. Я подожду. Я все равно буду здесь завтра. И на следующий день тоже. Уже понял? Ну же, парень, приложи себя! Я буду здесь на следующей неделе - просто дай мне знать, когда найдешь его.

Никогда не загружайте более 100 строк или около того: используйте фильтрацию, поиск, подкачку страниц: предоставьте пользователю полезный объем информации и не более того, иначе он немедленно прекратит использовать ваше приложение. - Я? Я бы удалил его с крайним предубеждением и потребовал свои деньги обратно ...


Reden Rodriguez

я использовал пейджинг, сэр, но он все равно падает, если я не использую пейджинг, он будет загружаться бесконечно.

Рейтинг:
2

RickZeeland

Есть способ, но вам придется купить компонент, который поддерживает "Виртуальная Прокрутка": Руководство по виртуальной прокрутке Grid View, управление пользовательским интерфейсом для ASP.NET AJAX, C#, VB.NET, богатый образец aspx и csharp для виртуальной прокрутки[^]

Другой вариант-использовать AllowCustomPaging, видеть: Пользовательские разбиение на страницы в GridView в ASP.NET 4.5[^]


Maciej Los

Я бы тебе этого не советовал, Рик.
Пожалуйста, обратитесь к ответу ОГА.

RickZeeland

Действительно, не рекомендуется, но это возможно :)

Reden Rodriguez

когда я увидел, что мое приложение терпит крах, я уже использовал подкачку, но она все еще терпит крах, поэтому я в конечном итоге ограничиваю свои данные.

Рейтинг:
1

Maciej Los

Цитата:
Есть ли способ загрузить миллион данных в datagrid и избежать сбоя веб-приложения?

- Нет!

Загрузка огромной порции данных подтверждает плохой дизайн.

Я бы посоветовал почитать о пейджинге данных. Видеть:
Учебное пособие: добавление сортировки, фильтрации и подкачки с помощью Entity Framework в ASP.NET приложение MVC | Microsoft Docs[^]
Эффективная подкачка больших объемов данных (C#) | Microsoft Docs[^]


BillWoodruff

+5

Maciej Los

Спасибо, Билл.