2012-03-29 24 views
0

アプリケーションで大量のデータセットに対してページングを実装しました。返されるレコードの数を「ページサイズ」で入力できるようにしました。これは、最後のレコードの行番号と共にストアドプロシージャに渡され、SELECT ROW_NUMBER()などを介して取得されます。WebサービスまたはWCF経由のサーバーサイドページング

このアプローチでは、ユーザーがフィルタリングしたりセット全体を検索することはできませんのデータ。クライアント側でフィルタリングすると、取得した100行程度のフィルタリングやソートしかできません。

サーバー側でこの種のページングを許可する方法はありますか?だから、おそらく、データサーバー側を保持し、そこにフィルタリングや並べ替えを行い、ページを通過できるデータのチャンクを返しますか?これは、データセット全体を取得するように選択した場合、大量のレコードであるためかなりの時間がかかります。

winformsアプリケーションでは標準のSOAPサービスが使用されていますが、必要に応じてWCFサービスを実装できる場合があります。

アドバイスやリンクありがとうございます!私はこれを行うためのいくつかの方法を見てきましたが、石鹸ウェブサービスのための最善の方法は不明です。

答えて

0

asp.net/wcfを使用して同様の問題に直面しました。最善のアプローチは、クライアントサイドグリッドを使用することでした。 jqgridとjquery(ajax)を使用してデータを返すWebサービスを呼び出します(json)。しかし、asp.netのWebフォーム開発者であったため、当初は快適ではありませんでした。

あなたが話している別の話は、サーバー(またはセッション)でデータを保持することですが、実際にはデータサイズに依存します。

さらに、ある場所では、頻繁に変更されることのないデータがあります。特定のレベルにキャッシュするか、xmlファイルをサーバーなどに保存します。毎日の後、バックエンドを通じてキャッシュを更新します処理。

これが役に立ちます。

0

これは、sqlの全データセットを(サービス内の)サーバー上のデータテーブルに取得することで管理できます。ページ番号、ページサイズ、並べ替え方向、および行フィルタを組み合わせて、 Webメソッドを使用すると、必要な行だけを送り返すことができます。

これは、sqlへの速度接続に問題がない場合は正常に動作します。

関連する問題