日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

转:c# Linq 的分页[转]

發(fā)布時(shí)間:2023/12/13 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:c# Linq 的分页[转] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn):http://www.cnblogs.com/leleroyn/archive/2008/05/14/1196811.html

很多學(xué)習(xí)Linq的朋友肯定有自己所不同的方法,考慮這個(gè)問題我所想到的是

用Take(),Skip(),TakeWhile(),SkipUntil()中的方法來實(shí)現(xiàn)

首先看Take()是否可用

Take方法的作用是從結(jié)果中取固定數(shù)量的值,

MydbDataContext mydb=new MydbDataContext("server=.;database=mydb");

var query=from p in mydb.Products ?????????????? orderby p.id descending ??????????????? select p;//取出Products中所用的項(xiàng)按降序排列 如果直接用take()

var q=query.take(n) 這樣只能取出前條n記錄,但是還是讓我們看到了分頁的曙光,還是還有個(gè)skip嗎,skip可以取出除去滿足條件的剩下的記錄。如果我們要把數(shù)據(jù)以每頁pagesize的數(shù)量來進(jìn)行分頁,很簡(jiǎn)單,很skip(pagersize*pagenum)然后在剩下的記錄中take(pagesize)不就得到了想要的數(shù)據(jù)了么。

?

varq=query.skip(pagesize*pagenum).take(pagesize) 就這么簡(jiǎn)單。

希望朋友們提供更好的方法來進(jìn)行分頁,同時(shí)對(duì)這個(gè)方法的優(yōu)劣性,進(jìn)行批評(píng)指導(dǎo) 附上運(yùn)行時(shí)生成的SQL(感謝紫色陰影Boler Guo ) sql server2000: SELECT TOP 20 [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] WHERE NOT (EXISTS( SELECT NULL AS [EMPTY] FROM ( SELECT TOP 10 [t1].[CustomerID] FROM [dbo].[Customers] AS [t1] ) AS [t2] WHERE [t0].[CustomerID] = [t2].[CustomerID] )) sql server 2005 SELECT TOP 10 [t1].[CustomerID], [t1].[CompanyName], [t1].[ContactName], [t1].[ContactTitle], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[Country], [t1].[Phone], [t1].[Fax] FROM ( SELECT ROW_NUMBER() OVER (ORDER BY [t0].[ContactName]) AS [ROW_NUMBER], [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] ) AS [t1] WHERE [t1].[ROW_NUMBER] > @p0 ORDER BY [t1].[ContactName] -- @p0: Input Int32 (Size = 0; Prec = 0; Scale = 0) [50] -- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.20XXX.X

轉(zhuǎn)載于:https://www.cnblogs.com/yjg8116/p/3458278.html

總結(jié)

以上是生活随笔為你收集整理的转:c# Linq 的分页[转]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。