乙個簡單的儲存過程資料分頁

2021-04-02 01:31:31 字數 2892 閱讀 4563

1。資料庫結構為:(在sql當中建立乙個資料庫後,直接在sql結構查詢器當中執行以下sql指令碼)

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[mobile]') and objectproperty(id, n'isusertable') = 1)

drop table [dbo].[mobile]

gocreate table [dbo].[mobile] (

[mobileid] [int] identity (1, 1) not null ,

[mobiletype] [nvarchar] (50) collate chinese_prc_ci_as null

) on [primary]

go2。儲存過程,(可以直接在資料庫中新建儲存過程,然後複製到資料庫)

/*儲存過程分頁

*/create procedure proc_paging

(@tbname nvarchar(255) ,

@sql nvarchar(4000),    --不帶排序語句的sql語句

@page int,              --頁碼

@recsperpage int,       --每頁容納的記錄數

@id varchar(255),       --需要排序的不重複的id號

@sort varchar(255) ,     --排序欄位及規則

@pagecount int output          --總頁數

)as

begin

declare @sql1 nvarchar(4000)

set @sql1=n'select @pagecount=count(*)'

+n' from '+@tbname

exec sp_executesql @sql1,n'@pagecount int output',@pagecount output

set @pagecount=(@pagecount+@recsperpage-1)/@recsperpage

endbegin

declare @str nvarchar(4000)

set @str='select   top '+cast(@recsperpage as varchar(20))+' * from ('+@sql+') t where t.'+@id+' not in (select   top '+cast((@recsperpage*(@page-1)) as varchar(20))+' '+@id+' from ('+@sql+') t9 order by '+@sort+') order by '+@sort

--print @str

--exec sp_executesql @str

--exec @str

declare @str1 nvarchar(400)

declare @str2 nvarchar(400)

set @str1 = cast(@recsperpage as varchar(20))

set @str2 = cast((@recsperpage*(@page-1)) as varchar(20))

exec ( n'select   top '+@str1+ n' * from ('+@sql+n') t where t.'+@id+n' not in (select   top '+@str2+n'

'+@id+n' from ('+@sql+n') t9 order by '+@sort+n') order by '+@sort )

endgo

3。程式**:(index.aspx.cs檔案)

using system;

using system.collections;

using system.componentmodel;

using system.data;

using system.drawing;

using system.web;

using system.web.sessionstate;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.htmlcontrols;

using system.data.sqlclient;

public class index : system.web.ui.page

else

}}  

///

/// 利用儲存過程取出資料並邦定到datagrid

///

/// 需要傳遞的翻頁頁碼的get引數(int)

private void databinddg2(int intpage)

}catch(exception error)

finally

}  lblpaging.text = getlblpagingbind(request.querystring["page"],parameterpagecount.value.tostring());

} ///

/// 返回分頁工具欄html編碼

///

/// 需要傳遞的翻頁頁碼的get引數(string)

/// 表的總頁數(string)

/// strpagebar

private void initializecomponent()

#endregion}}

4。web頁面**(index.aspx)

<%@ page language="c#" codebehind="index.aspx.cs" autoeventwireup="false" inherits="joyes.test.index" %>

乙個簡單的儲存過程資料分頁

1。資料庫結構為 在sql當中建立乙個資料庫後,直接在sql結構查詢器當中執行以下sql指令碼 if exists select from dbo.sysobjects where id object id n dbo mobile and objectproperty id,n isusertab...

乙個分頁儲存過程

page language c import namespace system.data import namespace system.data.sqlclient 訂單號 服務專案 預訂日期 操作人員 分配狀態 databinder.eval container.dataitem,offerid...

乙個分頁儲存過程

louje 分頁儲存過程 create procedure usp page pagesize int,頁大小 pageno int,頁號 tablename nvarchar 500 表名 keyword nvarchar 20 主鍵 fieldname nvarchar 2000 要顯示的欄位名...