- PR -

ページングについて

1
投稿者投稿内容
hana
ベテラン
会議室デビュー日: 2003/02/08
投稿数: 70
投稿日時: 2003-03-17 18:55
こんにちは。
現在C#でWEBアプリの開発をしています。

DataGridのページング機能を使って、
データの表示をしたいのですが、
ページが変わるたびに、全データを取得しBindする為、
何百件ものデータを表示するとなると、パフォーマンスがとても悪くなってしまいます。

Page_Load時などに、DataSetとして一度に必要なデータだけ持って来て、
ページを変えるときはその中からそのページ分だけのデータを取得する、
というようなことはできますか?
AllowCustomPagingプロパティを使ったりするようですが、
イマイチよくわかりません。

過去ログを見ると、SQL文で必要なデータのみ持ってくるやり方はあったのですが、
SQL文を使わずに行いたいのです。

DataGridではなくDataListで実現できるやり方でも構いません。
どなたか教えて下さい。
よろしくお願いします。
poteto
ベテラン
会議室デビュー日: 2002/08/08
投稿数: 50
投稿日時: 2003-03-17 20:18
こんにちは。

引用:

Page_Load時などに、DataSetとして一度に必要なデータだけ持って来て、
ページを変えるときはその中からそのページ分だけのデータを取得する、
というようなことはできますか?


セッション、キャッシュを利用されるのが良いかと。。。以下のページを参考にしてみてください。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconcacheapis.asp

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbcondecidingondataaccessstrategy.asp

引用:

過去ログを見ると、SQL文で必要なデータのみ持ってくるやり方はあったのですが、
SQL文を使わずに行いたいのです。


データリーダーを使用するやり方になると思いますが、確かにデータが軽くなるので、パフォーマンスを考慮する上では、一番理想的かなと思います。SQL文は、ストアド等でうまく記述すれば、スマートに行くと思いますが・・・しかし、ページングや、ソートが絡んだりすると、コードが複雑になり、かなりややこしくなりますね。

引用:

DataGridではなくDataListで実現できるやり方でも構いません。


DetaGridでも、DataListでも、あまり変わりないと思います。基本的には、取得したデータを表示させているだけですので。
hana
ベテラン
会議室デビュー日: 2003/02/08
投稿数: 70
投稿日時: 2003-03-17 20:37
potetoさん!ありがとうございます。

もし、実際のソースなどがあれば公開して頂けませんでしょうか・・・。
poteto
ベテラン
会議室デビュー日: 2002/08/08
投稿数: 50
投稿日時: 2003-03-18 09:49
こんにちは。

実際のソースは、見せられるようなものではございません。まして、自分もまだまだ勉強中の身ですので。。。
ということで、以下のMSDNのサンプルを見てみてください。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpqstart/html/cpsmpnetsamples-aspnetcaching.asp

それと、キャッシュやセッションは、結局は、サーバもしくはクライアント側のメモリーを使用することになりますので、色々と注意が必要になります。設定も様々ですので、MSDNや書籍等で詳しく勉強してみてください。自分も勉強中・・・

中途半端なご解答でスミマセン。
1

スキルアップ/キャリアアップ(JOB@IT)