Отображение данных в виде сетки страница за страницей - PullRequest
0 голосов
/ 30 октября 2011

У меня более 30 000 строк в таблице. Загрузка всех данных в виде сетки занимает много времени. Поэтому я хочу отображать 100 строк одновременно. Когда я нажимаю кнопку следующей страницы, должны отображаться еще 100 строк. Когда я нажимаю кнопку предыдущей страницы, должны отображаться предыдущие 100 строк. Если я введу страницу 5 в текстовое поле, я хочу перейти к 5-му ряду строк.

Я также хочу показать, сколько страниц будет. Можем ли мы реализовать эту концепцию в vb.net [winform] gridview. Я использую базу данных PostgreSQL.

Кто-нибудь может дать мне подсказку или концепцию?

1 Ответ

1 голос
/ 30 октября 2011

Посмотрите на OFFSET и LIMIT в PostgreSQL.
Ваш запрос для 5-й страницы может выглядеть так:

SELECT * 
FROM   tbl
ORDER  BY id
OFFSET 400
LIMIT  100;

id - это первичный ключ в моем примере, поэтому индекс создается автоматически. Если вы часто получаете доступ к таблице, производительность может выиграть от использования CLUSTER .

Общее количество страниц:

SELECT ceil(1235::real / 100)::int
FROM   tbl;

Если вы хотите, чтобы число было округлено в меньшую сторону, просто упростите до:

SELECT 1235  / 100
FROM   tbl;

Если оба числа являются целыми, результат будет целочисленным, а дробные цифры усекаются автоматически. Но я думаю, тебе нужно сойти сюда.

...