linq to sqlを使用してデータを取得しています。データグリッドでページサイズを設定し、ユーザーがページ2を選択すると、ポストバックが表示され、すべてのデータを再読み込みして2番目のページが表示されます。これを行うためのより良い方法、つまり、表示する必要のあるデータだけを読み取る方法があるはずだと思います。コードサンプルはないかと思っていました...
質問する
3784 次
3 に答える
3
あなたは本当にSkipとTakeメソッドを見ているはずです。
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 に答える