Как имитировать загрузку данных в SQL Server 2005 - PullRequest
1 голос
/ 22 июня 2011

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

Ответы [ 3 ]

1 голос
/ 22 июня 2011

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

После того, как вы это сделаете, вы можете рассмотреть возможность реализации пользовательского пейджинга.(где они нажимают кнопку, чтобы показать следующую или предыдущую страницу - во многом как здесь, в StackOverflow) или автоматическое разбиение на страницы.

Для автоматического разбиения на страницы (как вы видите в Excel) вам необходимо реализовать виртуальный режим в DataGridView.В этом блоге .

есть хороший пример этого.
1 голос
/ 22 июня 2011

Ваш уровень доступа к данным должен давать результаты до завершения запроса.Он должен реализовывать IEnumerable или IDataReader.Затем при привязке к нему первая страница результатов должна появиться быстро.

Написать модульный тест, который выбирает только первую строку, и второй модульный тест, который выбирает все строки.Если оба модульных теста занимают одинаковое количество времени, значит, у вас проблема с DAL.Измените свой DAL так, чтобы он давал строки рано.

0 голосов
/ 22 июня 2011

Разве вы не можете просто использовать пейджинг и запрашивать только необходимое количество строк на страницу из базы данных? проверьте эту ссылку

...