2011-10-30 11 views
0

テーブルには30,000を超える行があります。グリッドビュー内のすべてのデータをロードするのに多くの時間がかかります。だから私は一度に100の行を表示したい。次のページボタンをクリックすると、別の100行が表示されます。前のページボタンをクリックすると、前の100行が表示されます。テキストボックスに5ページ目を入力すると、5行目の行にジャンプします。グリッドビューでデータをページ単位で表示

また、表示するページ数も表示したいと思います。 vb.net [winform] gridviewでこの概念を実装できますか?私はデータベースPostgreSQLを使用しています。

誰でも私にヒントやコンセプトを教えていただけますか?

答えて

1

PostgreSQLのOFFSET and LIMITをご覧ください。 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; 

結果は整数型と小数点以下の桁になります自動的に切り捨てられます。しかし、私はここで切り上げる必要があると思います。

+0

Brandstetter:スクリプトをありがとう。私は合計ページ数を表示する際に1つの問題があります。 ceil()関数は、私が望むように正確な値を返していません。たとえばceil(42.04)の場合、42を返す代わりに43を返します.43の代わりに42を返す他の方法はありますか? – nightfire001

+0

'ceil'の兄弟:[' floor'](http://www.postgresql.org/docs/9.1/interactive/functions-math.html)があります。単純に整数にキャストすることもできますが、小数点以下を切り捨てます。しかし私は目的のために 'ceil'を選んだ。 '42.04'を計算すると、' 43'ページを表示する必要があります。最後のページは空ですが、まだ必要です。 –

関連する問題