首先我們在資料庫(sql server)中宣告定義儲存過程
複製** **如下:
use sales --指定資料庫
if(exists(select * from sys.objects where name='proc_location_paging')) --如果這個proc_location_paging儲存過程存在則刪除
drop proc proc_location_paging
go
create proc prowww.cppcns.comc_location_paging --建立儲存過程
( @pagesize int, --頁大小
@currentpage int, --當前頁
@rowcount int output, --總行數(傳出引數)
@pagecount int output --總頁數(傳出引數)
) as
begin
select @rowcount= count(locid) from location --給@rowcount賦值
select @pagecount= ceiling((count(locid)+0.0)/@pagesize) from location --給@pagecount賦值
select top (@pagesize)* from (select row_number() over(order by locid) as rowid,* from location) as t1
where rowid >(@pagesize*(@currentpage-1))
end
go
---------------------------------以上就表示這個儲存過程已經定義完了。
---------------------------------以下是執行這個儲存過程。我們可以看結果
declare @rowcount int,@pagecount int --先宣告兩個引數
--執行proc_location_paging這個儲存過程。@rowcount,@pagecount後面都有output 表示它們兩是輸出引數
exec proc_location_paging 10,1,@rowcount output,@pagecount output
select @rowcount,@pagecount --查詢這兩個引數的值
因為是直接訪問資料庫的,所以我們將下面這條方法寫入到dal層中,這裡我將它寫入到sqlhelper中
複製** **如下:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.configuration;
using system.data.sqlclient;
using system.data;
using system.reflection;
namespace llsql.dal
; //因為在儲存過程中@rowcount 與@pagecount 是乙個輸出引數(output), 而parameters這個陣列裡,第三,和第四個引數就是要用來替換掉這兩個輸出引數的,所以這裡要將parameters這個陣列裡的這兩個引數設為輸出引數。
parameters[2].direction = parameterdirection.output;
parameters[3].direction = parameterdirection.output;
cmd.parameters.addrange(parameters); //將引數傳遞給我們的cmd命令物件
datatable dt = new datatable();
using (sqldataadapter adapter = new sqldataadapter(cmd))
//等儲存過程執行完畢後,儲存過程會把這兩個輸出引數傳遞出來。那麼我們在這裡來取得這兩個返回引數。
rowcount = convert.toint32(parameters[2].value);
程式設計客棧 pagecount = convert.toint32(parameters[3].value);
return dt;
} }
} }
}在dal資料夾中( 層中) 建立乙個aticel.cs類 產生乙個list
複製** **如下:
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.data;
using llsql.dal;
using webapplication1.model;
namespace webapplication1.dal
).tolist();
}&nbsigkxyypkp;
return list; //將這個list返回回去
} }
}在api這個資料夾中建立乙個getpagedata.ashx 頁 (bll層) 在這裡呼叫adl層裡的 aticel.cs類中的getpagelistbypageindex()方法,獲取乙個list 並將這個list轉換成乙個json格式字串, 共ajax 非同步請求得到。
複製** **如下:
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.script.serialization;
namespace webapplication1.api
else
} public bool isreusable
} }
}前端頁面 (將ajax請求得到的資料展示也頁面)
複製** **如下:
使用ajax分頁
編號城市名父idloctypeelongcodecitycodebaiduposversion
本文標題: c#基於資料庫儲存過程的ajax分頁例項
本文位址:
資料庫 儲存過程
儲存過程,stored procedure,是在大型資料庫系統中,一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。模擬於c中的函式。mysql與sqlserver是不同的。建立儲存過程 conn getconnec...
資料庫 儲存過程
在資料庫中,儲存過程屬於一種物件,是一種高效的安全的訪問資料庫的方法。下邊我們就資料庫中的儲存過程總結它的相關知識點。我們分為概述,實現和管理三個方面來總結。一,儲存過程的概述 1,概念 儲存過程 storedprocedure 是在資料庫伺服器端執行的一組t sql語句的集合,經編譯後存放在資料庫...
資料庫 儲存過程
一組為了完成特定功能的sql 語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 如果有引數 來執行它。系統儲存過程 以sp 開頭,用來進行系統的各項設定.取得資訊.相關管理工作。本地儲存過程 使用者建立的儲存過程是由使用者建立並完成某一特定功能的儲存過程,這跟各種程式語言裡使用...