0

レポートページをコーディングしています。このページには、ユーザーが日付をフィルタリングするための2つの日付フィールドがあり、CodeBehind(ユーザーがボタンビューをクリックしたとき)のこれらの日付に応じてGridViewが入力されます。次に、このGridViewのページング/並べ替え機能を実装します。調査したところ、GridViewのデフォルトのページングは​​あまり効率的ではなく(レポートテーブルには数千のレコードが含まれている可能性があります)、カスタムページングがありますが、これにはObjectDataSource(私は使用しません)を使用する必要があります。したがって、この状況で最もよく使用されるいくつかのアプローチを誰かが私に勧めることができますか?いくつかのチュートリアルは喜んで感謝されます:)

ありがとう、

4

1 に答える 1

1

データベースにレコードが保存されていると仮定すると、レコードカウントを取得し、その数をページングに使用します。次に、各ページに表示したいものを照会します。

string.Format(@"
    SELECT TOP {0} * FROM Records WHERE pkId NOT IN (
        SELECT TOP {1} pkId FROM Records ORDER BY pkId
    ) ORDER BY pkId;",
    upperBoundary,
    lowerBoundary
);

たとえば、どこupperBoundaryになりますか。lowerBoundary + itemsPerPageMSSQLを使用すると、MySQLのLIMIT機能の贅沢はありませんが、これは同じです。

日付を絞り込むと、次のようになります

SELECT * FROM Records WHERE Date > earlyDate AND Date <= lateDate

これは私の意見では最も効率的な方法です。トラフィックがほとんど発生せず、レコード数をキャッシュすると、多くのクエリが飛び交うこともありません。

于 2010-11-16T22:21:02.277 に答える