分頁大雜燴

2022-02-09 06:43:57 字數 2349 閱讀 8839

文章中提到了linq,所以先介紹一下它,好讓我們有個初步認識:

• linq是語言級整合查詢(language integrated query)

• linq是一種用來進行資料訪問的程式設計模型,使得.net語言可以直接支援資料查詢

• linq發布於.net framework 3.5

• linq體現了物件導向程式設計思想

• linq包含了linq to sql, linq to entities, linq to datasets(這三個都體現在ado.net上), linq to objects, linq to xml

下面是不同的分頁code

1. linq to entity 

int pageindex = 1;

int pagesize = 30;

int skipcount = (pageindex - 1) * pagesize;

using (guakaoentities db = new

guakaoentities())

這是原生的linq to entity分頁語句。

2. linq to entity之topagelist()

int pageindex = 1;

int pagesize = 30;

using (guakaoentities db = new

guakaoentities())

topagedlist()是linq to entity分頁的擴充套件方法。微軟提供了pagedlist類庫,裡面提供了這個擴充套件方法。

用sql server profiler跟蹤前兩者生成的sql語句:

說明:offset...fetch是sql server 2012的新特性,offset...fetch從結果集中取出某一頁的結果。rows可用row來代替,next可用first來代替。

例子:跳過前30行且取剩餘行

select

*from info order

by id desc

offset 3

0 rows

跳過前30行且取接下來的30行

select

*from info order

by id desc

offset 3

0 rows fetch

next 30 rows only

限制條件:

offset...fetch要與order by一起使用;

top和offset...fetch不能在同乙個表示式中一起使用;

3. linq to sql

private

static

readonly

int pageindex = 1

;private

static

readonly

int pagesize = 30

;private

static

readonly

int skipcount = (pageindex - 1) *pagesize;

public listgetinfolist()

return

infolist;

}

linq to sql生成sql語句如下:

30;使用聚合函式和not in分頁語句請看

5. mysql分頁

select * from info where id limit 0,20
比較一下各分頁的效能使用聚合函式或not in來實現分頁都不是最好的選擇,所以在這比較一下offset ... fetch與row_num() over():

之前用慣了row_num() over(),現在從語法或效能上看來offset...fetch也是不錯的選擇。

C指標大雜燴

include int func int a,int b int main void int p int 可以看成int a int 這是乙個指標指向引數是int,返回值是int的函式。函式指標。int p int 這是乙個函式,他的引數是乙個整形,返回值是乙個指向整形的指標。include int...

問題大雜燴(一)

最近遇到了很多問題,記錄一下,以便後續檢視 a.檢查網路,檢視不同的節點之間的網路是否可達 2.檔案等資料處理 a.從上百份的檔案中提取特定的資料,使用awk方法進行統計出來,通過寫shell指令碼處理資料。b.awk用法 shell小指令碼 讀取提取到的資料到txt中,讀取txt中每一行資料,然後...

String類大雜燴

字串轉換 stringbuilder類和stringbuilder類 string 字串,使用一對 引起來表示 1.string宣告為final的,不可被修飾 2.string實現了serializable介面 表示字串是支援序列化的。實現了comparable介面 表示string可以比較大小。3...