Как сделать разбиение на страницы в DataGridView, но сначала не получить все данные - PullRequest
0 голосов
/ 04 октября 2019

Я хочу сделать нумерацию страниц в C # на datagridview. Я провел некоторые исследования, и все они, например, this , мне нужно сначала извлечь все данные из sql в c #, а затем выполнить нумерацию страниц. Я хочу получать записи по требованию, когда номер страницы достигает их. Например, если мой PageSize равен 10, я не хочу извлекать следующие 10 записей, когда показываю первые 10, и как только пользователь нажимает «Далее», извлекает следующие 10 записей, используя какой-либо SQL-запрос или хранимую процедуру. Я использую Sql Server 2018 Моя цель - минимизировать использование памяти, чтобы повысить скорость работы моего приложения при работе с большим объемом данных. В настоящее время я использую прямую команду sql и извлекаю данные через хранимую процедуру в таблицу данных;этот SP имеет рекурсивную команду и немного тяжел для больших данных. С течением времени база данных растет, и выборка всех данных занимает много времени, и поэтому графический интерфейс замедляется. Так что я подумал, что должен сделать нумерацию страниц;но, насколько я знаю, в нумерации страниц по умолчанию все данные все еще загружаются в память. Но я хочу узнать, сколько строк я планирую показать на каждой странице в C # WinForm

1 Ответ

0 голосов
/ 04 октября 2019

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/paging-and-sorting/efficiently-paging-through-large-amounts-of-data-cs

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

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}" TypeName="ProductsBLL"
SelectMethod="GetProductsPaged" EnablePaging="True"
SelectCountMethod="TotalNumberOfProducts">
</asp:ObjectDataSource>
...