亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

sqlserver 存儲過程分頁(按多條件排序)

2024-08-31 00:58:36
字體:
來源:轉載
供稿:網友
cs頁面調用代碼:

復制代碼 代碼如下:


 public int TotalPage = 0;
public int PageCurrent = 1;
public int PageSize = 25;
public int RowsCount = 0;
string userid, username;
public DataTable dt = new DataTable();
public string path, userwelcome;
public string opt,cid;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Params["page"] == null || Request.Params["page"].ToString().Equals(""))
PageCurrent = 1;
else
PageCurrent=int.Parse(Request.Params["page"].ToString());
this.getPage(out TotalPage, out RowsCount, PageSize, PageCurrent);
}
}


//調用存儲過程的函數

private void getPage(out int totalPage, out int rowsCount, int pageSize, int currentPage)
{
SqlParameter[] parameters = {
new SqlParameter("@TotalPage", SqlDbType.Int,4),
new SqlParameter("@RowsCount", SqlDbType.Int,4),
new SqlParameter("@PageSize", SqlDbType.Int,4),
new SqlParameter("@CurrentPage", SqlDbType.Int,4),
new SqlParameter("@SelectFields", SqlDbType.NVarChar,700),
new SqlParameter("@IdField",SqlDbType.NVarChar,50),
new SqlParameter("@OrderField", SqlDbType.NVarChar,200),
new SqlParameter("@OrderType", SqlDbType.NVarChar,2),
new SqlParameter("@TableName", SqlDbType.NVarChar,300),
new SqlParameter("@strWhere", SqlDbType.NVarChar,300),
};
parameters[0].Direction = ParameterDirection.Output;
parameters[1].Direction = ParameterDirection.Output;
parameters[2].Value = pageSize;
parameters[3].Value = currentPage;
parameters[4].Value = "a.RLId,a.companyName,a.webSite,a.isRL,a.ordernum,a.isrl,a.userid";
parameters[5].Value = "a.RLId";

parameters[6].Value = " a.isrl asc , a.orderNum ";
parameters[7].Value = "1";
parameters[8].Value = "qiYeRenling a";
parameters[9].Value = "1=1";//

DataSet ds = Wm23Abc.DBUtility.DbHelperSQL.RunProcedure("getRecordByPage", parameters, "dt");
dt = ds.Tables[0];
totalPage = int.Parse(parameters[0].Value.ToString());
rowsCount = int.Parse(parameters[1].Value.ToString());
}


.aspx頁面代碼:

<table>
<tr><td><b>公司名稱</b></td><td><b>公司網址</b></td><td><b>認領狀態</b></td></tr>
<%for (int i = 0; i < dt.Rows.Count; i++)
{
%>
<tr>
<td><%= dt.Rows[i]["companyName"].ToString() %>排序值:<%= dt.Rows[i]["ordernum"].ToString() %></td>
<td><%= dt.Rows[i]["webSite"].ToString() %>
是否認領:<%=dt.Rows [i]["userid"].ToString () %></td>
<td><%= dt.Rows[i]["isRL"].ToString().Equals("0") ? "<a href=/"javascript:;/" onclick=/"renLing(event,'"+dt.Rows[i]["RLId"].ToString()+"');/">認領該企業</a>" : "<font color=/"red/">該企業已被認領</font>"%></td>
</tr>
<%
}
%>
</table>
</div>
<div>
第 <%=PageCurrent %> 頁 共 <%=RowsCount %> 條 共 <%=TotalPage%> 頁
<% if (PageCurrent != 1)
{
%>
<a href="test.aspx">首 頁</a>
<a href="test.aspx?page=<%=PageCurrent-1 %>">上一頁</a>

<%
}
if (PageCurrent != TotalPage)
{
%>
<a href="test.aspx?page=<%=PageCurrent+1 %>">下一頁</a>
<a href="test.aspx?page=<%=TotalPage%>">末 頁</a>
<%
}
%>
</div>



存儲過程代碼:

復制代碼 代碼如下:


CREATE proc [dbo].[getRecordByPage]
@TotalPage int output,--總頁數
@RowsCount int output,--總條數
@PageSize int,--每頁多少數據
@CurrentPage int,--當前頁數
@SelectFields nvarchar(1000),--select 語句但是不包含select
@IdField nvarchar(50),--主鍵列
@OrderField nvarchar(50),--排序字段,如果是多個字段,除最后一個字段外,后面都要加排序條件(asc/desc),不包含order by,最后一個排序字段不用加排序條件
@OrderType nvarchar(4),--1升序,0降序
@TableName nvarchar(200),--表名
@strWhere nvarchar(300)--條件
As
Begin
declare @RecordCount float
declare @PageNum int --分頁依據數
Declare @Compare nvarchar(50)--比較字段區分min或者max
Declare @Compare1 nvarchar(2) --大于號“>” 或者小于號"<“
Declare @OrderSql nvarchar(10)--排序字段
declare @Sql nvarchar(4000)
Declare @TemSql nvarchar(1000)
Declare @nRd int
declare @afterRows int
declare @tempTableName nvarchar(10)

if(@OrderType='1')
Begin
set @OrderSql=' asc'
End
Else
Begin
set @OrderSql= ' desc'
End


if(isnull(@strWhere, '')<>'')
Set @strWhere = @strWhere
if(@strWhere='')
Set @strWhere=' 1=1 '

Set @TemSql='Select @RecordCount=Count(1) from '+@TableName +' where '+@strWhere
exec sp_executesql @TemSql,N'@RecordCount float output',@RecordCount output
Set @RowsCount=@RecordCount
Set @TotalPage= ceiling(@RecordCount/@PageSize)
if(@CurrentPage>@TotalPage)
Set @CurrentPage=@TotalPage
if(@CurrentPage<1)
Set @CurrentPage=1
if(@PageSize<1)
Set @PageSize=1
print(@RecordCount)




if(@CurrentPage=1)
Begin
set Rowcount @PageSize
set @Sql='select '+ @SelectFields +' from '+ @TableName +' where ' +@strWhere+' order by '+@OrderField +'

'+@OrderSql +','+@IdField +' asc'
--print(@Sql)
exec sp_executeSql @Sql

End
else if(@CurrentPage=@TotalPage)
begin
set @afterRows=@RowsCount-(@CurrentPage-1)*@PageSize
set RowCount @afterRows
if(@OrderType='1')
begin
set @OrderField=REPLACE(@OrderField,'asc','lai512343975')//這里用變量將asc和desc互換,哈哈,太神了
set @OrderField=REPLACE(@OrderField,'desc','asc')
set @OrderField=REPLACE(@OrderField,'lai512343975','desc')
set @Sql='select ' + @SelectFields +' from '+ @TableName +' where ' +@strWhere+' order by '+@OrderField +' desc'+','+@IdField +' asc'

end
else
begin
set @OrderField=REPLACE(@OrderField,'desc','lai512343975')
set @OrderField=REPLACE(@OrderField,'asc','desc')
set @OrderField=REPLACE(@OrderField,'lai512343975','asc')
set @Sql='select ' + @SelectFields +' from '+ @TableName +' where ' +@strWhere+' order by '+@OrderField +' asc ' +','+@IdField+ ' asc'
print(@Sql)
end
--print(@Sql)
exec sp_executeSql @Sql
end
else
Begin
set @nRd=@PageSize* (@CurrentPage-1)
print(@nRd)


set RowCount @PageSize
set @Sql='select ' + @SelectFields +' from '+ @TableName +' where ' +@strWhere+' and '+@IdField + ' not in (select top '+ cast(@nRd as nvarchar(10))+' '+@IdField+' from '+@TableName+' where '+ @strWhere+' order by '+@OrderField +' '+@OrderSql+','+@IdField +' asc) ' + ' order by '+ @OrderField + ' ' +@OrderSql+','+@IdField +' asc'
exec sp_executeSql @Sql
--Print(@sql)
End
end
GO





發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人在线视频| 26uuu亚洲伊人春色| 福利一区福利二区微拍刺激| 亚州av一区二区| 日韩在线免费观看视频| 中文字幕欧美精品日韩中文字幕| 亚洲人成电影网站色xx| 97在线精品视频| 狠狠色狠狠色综合日日五| 亚洲男人天堂九九视频| 日韩亚洲欧美中文高清在线| 中文字幕视频在线免费欧美日韩综合在线看| 国产美女精品视频免费观看| 欧美综合第一页| 国产免费一区二区三区在线能观看| 亚洲自拍偷拍色图| 国产欧亚日韩视频| 国产精品久久久久久久久久99| 欧美在线观看一区二区三区| 日韩大片免费观看视频播放| 欧美自拍视频在线观看| 国产日韩在线亚洲字幕中文| 欧美精品18videos性欧| 青草热久免费精品视频| xxx欧美精品| 美女性感视频久久久| 欧美激情xxxxx| 日韩欧美精品免费在线| 有码中文亚洲精品| 日本韩国欧美精品大片卡二| 亚洲精品中文字幕女同| 91精品中文在线| 热门国产精品亚洲第一区在线| 欧洲亚洲在线视频| 色婷婷av一区二区三区久久| 欧美激情a∨在线视频播放| 亚洲精品一区在线观看香蕉| 国产精品一区二区女厕厕| 久久久久久久久久婷婷| 欧美视频一区二区三区…| 国产免费一区视频观看免费| 亚洲综合小说区| 欧美日韩亚洲视频一区| 欧美国产精品日韩| 啪一啪鲁一鲁2019在线视频| 在线观看精品自拍私拍| 国产999精品久久久影片官网| 91欧美激情另类亚洲| 国产精品免费视频久久久| 日韩中文字幕在线观看| 国产婷婷色综合av蜜臀av| 国产一区二区三区精品久久久| 8x海外华人永久免费日韩内陆视频| 九九九久久久久久| 久久久久久久久中文字幕| 亚洲老板91色精品久久| 日韩欧美中文字幕在线播放| 亚洲福利视频二区| 国产精品www| 成人乱色短篇合集| 国产欧美va欧美va香蕉在| 日韩精品中文字| 青草青草久热精品视频在线观看| 亚洲欧美国内爽妇网| 欧美激情视频网址| 日韩av在线免播放器| 国产精品美女主播| 国产午夜精品视频| 国产精品久久婷婷六月丁香| 91精品视频在线看| 欧美激情一区二区三区高清视频| 91香蕉国产在线观看| 欧美性xxxx| 欧美大片免费观看| 亚洲少妇中文在线| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲一区二区三区sesese| 亚洲精品v欧美精品v日韩精品| 久久九九精品99国产精品| 日韩中文在线中文网在线观看| 伊人久久精品视频| 欧美在线一区二区视频| 欧美又大又硬又粗bbbbb| 91久久久久久| 亚洲欧洲av一区二区| 91精品国产综合久久香蕉| 黑丝美女久久久| 久久精品视频中文字幕| 成人免费自拍视频| 久久久久久久久国产| 国产精品丝袜白浆摸在线| 亚洲日韩中文字幕在线播放| 中文字幕亚洲一区二区三区五十路| 国产一区二区三区在线观看视频| 亚洲精品aⅴ中文字幕乱码| 精品香蕉在线观看视频一| 在线观看国产精品淫| 91色在线视频| 国产欧美一区二区三区久久人妖| 精品中文字幕久久久久久| 成人免费看黄网站| 国产精品羞羞答答| 欧美福利小视频| 欧美日韩在线视频一区二区| 日韩av免费看网站| 操91在线视频| 亚洲品质视频自拍网| 都市激情亚洲色图| 中文字幕亚洲无线码a| 久久黄色av网站| 精品一区二区三区四区在线| 最新国产精品拍自在线播放| 91精品国产九九九久久久亚洲| 亚洲欧洲中文天堂| 国产精品极品美女在线观看免费| 黑丝美女久久久| 国产99久久久欧美黑人| 亚洲美女精品久久| 91精品国产色综合久久不卡98口| 影音先锋日韩有码| 欧美精品日韩三级| 亚洲高清免费观看高清完整版| 黄网动漫久久久| 国产精品一区=区| 大桥未久av一区二区三区| 亚洲大胆美女视频| 亚洲国产日韩精品在线| 精品国产31久久久久久| 中文一区二区视频| 久久久女人电视剧免费播放下载| 亚洲欧美日韩视频一区| 成人黄色片网站| 91黑丝在线观看| 韩国精品久久久999| 久久噜噜噜精品国产亚洲综合| 97在线观看视频国产| 国产一级揄自揄精品视频| 成人黄色av网| 久久久精品视频在线观看| 国产欧美亚洲精品| 中文字幕亚洲自拍| 日韩久久精品电影| 日韩视频免费中文字幕| xxxx欧美18另类的高清| 日本欧美精品在线| 欧美多人乱p欧美4p久久| 欧美日韩中文在线| 欧美小视频在线| 亚洲成人在线视频播放| 红桃视频成人在线观看| 午夜免费日韩视频| 久久精品一本久久99精品| 成人中文字幕+乱码+中文字幕| 亚洲精品国产福利| 日韩av资源在线播放| 亚洲精品色婷婷福利天堂| 欧美性生交大片免网| 91色视频在线导航| 狠狠综合久久av一区二区小说| 国产欧美一区二区三区久久人妖| 日韩中文字在线| 亚洲欧洲国产一区| 午夜精品久久久99热福利| 欧美精品999|