3

linq to sqlを使用してデータを取得しています。データグリッドでページサイズを設定し、ユーザーがページ2を選択すると、ポストバックが表示され、すべてのデータを再読み込みして2番目のページが表示されます。これを行うためのより良い方法、つまり、表示する必要のあるデータだけを読み取る方法があるはずだと思います。コードサンプルはないかと思っていました...

4

3 に答える 3

3

あなたは本当にSkipTakeメソッドを見ているは​​ずです。

LINQ to SQLに関するScottGuの投稿(パート3)を参照し、ページで「クエリ結果のページング」を検索してください。これにはいくつかの良い例があります。

または、 LinqDataSourceコントロールを使用していて、SQL 2005または2008データベースと通信している場合は、この動作を自動的に取得する必要があります。LINQ to SQL(パート5)はそれをカバーしています。

于 2009-05-21T00:22:34.767 に答える
2

データベースのロードを本当に簡単にしたい場合は、クライアント側のページングを見てください...

于 2009-05-21T01:14:51.133 に答える
0
public static IEnumerable<new_log> Search(dbDataContext db, int _user,int _pageNumber, int _rowCountPerPage)
{
var query = (
                   from p in db.new_log
                  where p.created_by == (_user < 0 ? p.created_by : _user)  orderby p.id descending
                  select p 
                  )

              .Skip(_pageNumber * _rowCountPerPage).Take(_rowCountPerPage); 
return query;

}

キーポイント:

1.パフォーマンスを向上させるには、ページまたはコントロールレベルのviewsateを無効にする必要があります。

<%@ Page Language="C#" EnableViewState="false" %> OR <asp:GridView
   EnableViewState="false" runat="server"  />

2.結果を得るために単一のクエリを書いてみてください。

http://forums.asp.net/p/1779601/5120205.aspx/1?p=True&t=634814907594742030

于 2012-08-25T15:34:44.787 に答える