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

首頁 > 編程 > .NET > 正文

SQL通用存儲過程分頁,支持多表聯合

2024-07-10 13:24:44
字體:
來源:轉載
供稿:網友
SQLPager存儲過程

復制代碼 代碼如下:


ALTER proc [dbo].[SqlPager]
(
@tblName varchar(255), -- 表名(注意:可以多表鏈接)
@strGetFields varchar(1000) = '*', -- 需要返回的列
@OrderfldName varchar(255)='', -- 排序的字段名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@doCount int = 1 output, --查詢到的記錄數
@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序
@strWhere varchar(500) = '' -- 查詢條件 (注意: 不要加 where)
)
AS
declare @strSQL nvarchar(4000) -- 主語句
declare @strTmp varchar(110) -- 臨時變量
declare @strOrder varchar(300) -- 排序類型

if @strWhere != ''
set @strSQL = 'select @doCount=count(*) from ' + @tblName + ' where '+@strWhere
else
set @strSQL = 'select @doCount=count(*) from ' + @tblName
exec sp_executesql @strSQL,N'@doCount int out',@doCount out
--以上代碼的意思是如果@doCount傳遞過來的不是0,就執行總數統計。以下的所有代碼都是@doCount為0的情況
set @strSQL='';

if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @OrderfldName +'] desc'--如果@OrderType不是0,就執行降序,這句很重要!
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @OrderfldName +'] asc'
end
if @PageIndex = 1
begin
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder--如果是第一頁就執行以上代碼,這樣會加快執行速度
end
else
begin--以下代碼賦予了@strSQL以真正執行的SQL代碼
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '
+ @tblName + ' where [' + @OrderfldName + ']' + @strTmp + '(['+ @OrderfldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+ @OrderfldName + '] from ' + @tblName + ' ' + @strOrder + ') as tblTmp)'+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '
+ @tblName + ' where [' + @OrderfldName + ']' + @strTmp + '(['
+ @OrderfldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @OrderfldName + '] from ' + @tblName + ' where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
exec (@strSQL)


SQLHelper類中寫執行存儲過程 這是我的數據庫操作類.方法有點老,還是三層架構.(mvc也應該差不多.我還木有試試.)

復制代碼 代碼如下:


/// <summary>
/// 分頁(存儲過程) 用法例如下:
/// </summary>
/// <param>表名(注意:可以多表鏈接)</param>
/// <param>需要返回的列</param>
/// <param>主鍵</param>
/// <param>排序的字段名</param>
/// <param>頁尺寸</param>
/// <param>頁碼</param>
/// <param>查詢到的記錄數</param>
/// <param>設置排序類型, desc、asc</param>
/// <param>查詢條件 (注意: 不要加 where)</param>
/// <returns></returns>
public static DataTable DbPager(
string tblName,
string strGetFields,
string PkeyfldName,
string OrderfldName,
int PageSize,
int PageIndex,
out int doCount,
string OrderType,
string strWhere)
{
SqlConnection con = new SqlConnection(ConnString.Value);
SqlDataAdapter da = new SqlDataAdapter("DbPager", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add(new SqlParameter("@tblName", tblName));
da.SelectCommand.Parameters.Add(new SqlParameter("@strGetFields", strGetFields));
da.SelectCommand.Parameters.Add(new SqlParameter("@PkeyfldName", PkeyfldName));
da.SelectCommand.Parameters.Add(new SqlParameter("@OrderfldName", OrderfldName));
da.SelectCommand.Parameters.Add(new SqlParameter("@PageSize", PageSize));
da.SelectCommand.Parameters.Add(new SqlParameter("@PageIndex", PageIndex));
da.SelectCommand.Parameters.Add("@doCount", SqlDbType.Int);
da.SelectCommand.Parameters["@doCount"].Direction = ParameterDirection.Output;
da.SelectCommand.Parameters.Add(new SqlParameter("@OrderType", OrderType));
da.SelectCommand.Parameters.Add(new SqlParameter("@strWhere", strWhere));
DataSet ds = new DataSet();
da.Fill(ds);
doCount = Convert.ToInt32(da.SelectCommand.Parameters["@doCount"].Value);
return ds.Tables[0];
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久不能| 亚洲欧美精品中文字幕在线| 欧美一区二区视频97| 精品国产一区久久久| 成人做爰www免费看视频网站| 97人人做人人爱| 欧美激情亚洲激情| 亚洲欧洲国产精品| 欧美另类在线观看| 成人444kkkk在线观看| 日韩一区二区福利| 主播福利视频一区| 国产精品久久久久久久久男| 欧美最猛性xxxxx亚洲精品| 国产精品日本精品| 日韩精品中文字| 97在线视频精品| 夜色77av精品影院| 欧美亚洲成人xxx| 日韩国产欧美精品一区二区三区| 激情av一区二区| 日韩欧亚中文在线| 精品日本高清在线播放| 亚洲欧洲美洲在线综合| 亚洲女性裸体视频| 久久久www成人免费精品张筱雨| 国产欧美久久一区二区| 国产精品一区二区三区毛片淫片| 久久久免费在线观看| 久久久噜噜噜久噜久久| 精品女同一区二区三区在线播放| 久久久久久久久久国产精品| 丝袜亚洲欧美日韩综合| 国产69精品久久久久9999| 成人午夜在线影院| 国产综合视频在线观看| 久久精品青青大伊人av| 久久久国产精品免费| 欧美激情videos| 狠狠久久亚洲欧美专区| 黑人与娇小精品av专区| 欧美大片在线影院| 久久亚洲综合国产精品99麻豆精品福利| 亚洲深夜福利网站| 亚洲人成网站免费播放| 日韩欧美在线免费观看| 日韩精品亚洲视频| 国产亚洲精品久久久优势| 久久99精品视频一区97| 日韩最新免费不卡| 国产欧美精品久久久| 91亚洲精品在线| 青青草原成人在线视频| 自拍偷拍亚洲精品| 久热精品视频在线观看一区| 久久久久久成人| 性欧美长视频免费观看不卡| 久久99亚洲精品| 国产精品女视频| 欧美日韩在线观看视频| 亚洲国产精品成人一区二区| 久久久国产在线视频| 91免费精品国偷自产在线| 亚洲成色www8888| 久久影视电视剧免费网站| 欧美中文字幕在线| 亚洲少妇中文在线| 欧美大成色www永久网站婷| 亚洲另类图片色| 在线观看亚洲区| 亚洲精品国产美女| 国产精品偷伦免费视频观看的| 亚洲精品短视频| 1769国内精品视频在线播放| 亚洲欧洲在线视频| wwwwwwww亚洲| 欧美成人精品h版在线观看| 国产成人精品在线视频| 精品国产一区二区三区久久久狼| 午夜精品久久久久久久久久久久| 成人网欧美在线视频| 国内精品久久久久影院优| 欧美日韩国产一区在线| 欧美国产日产韩国视频| 国产精品久久久一区| 久久成人av网站| 91理论片午午论夜理片久久| 日韩中文在线观看| 国产欧美一区二区三区视频| 中文字幕欧美精品在线| 亚洲国产中文字幕久久网| 日韩中文字幕在线视频播放| 亚洲第一中文字幕| 日韩免费黄色av| 国产成人avxxxxx在线看| 国产91精品久| 国产欧美日韩综合精品| 日韩av电影国产| 最近2019中文字幕大全第二页| 91久久久久久久久| 欧美激情在线观看视频| 欧美亚洲视频一区二区| 日韩在线观看成人| 正在播放国产一区| 亚洲欧美日韩久久久久久| 欧美丝袜一区二区| 亚洲91精品在线观看| 亚洲wwwav| 午夜精品福利视频| 91精品久久久久久久久| 中文字幕日韩免费视频| 欧美日韩精品中文字幕| 国产精品久久久久久久久免费| 日本道色综合久久影院| 亚洲美女www午夜| 隔壁老王国产在线精品| 欧美疯狂性受xxxxx另类| 91精品在线影院| 国内久久久精品| 欧美激情久久久久| 色噜噜狠狠色综合网图区| 亚洲一区二区中文| 久久九九免费视频| 精品日韩中文字幕| 久久99久国产精品黄毛片入口| 国产精品亚洲аv天堂网| 在线日韩日本国产亚洲| 欧美专区中文字幕| 中文亚洲视频在线| 国外成人在线视频| 欧美又大粗又爽又黄大片视频| 成人免费在线视频网站| 国产精品欧美日韩一区二区| 中文字幕亚洲在线| 亚洲欧洲第一视频| 成人黄色片在线| 欧美激情视频给我| 日韩福利在线播放| 日韩激情片免费| 久久久欧美一区二区| 国产精品女人久久久久久| 成人性生交xxxxx网站| 日韩第一页在线| 国产丝袜精品视频| 另类少妇人与禽zozz0性伦| 中文字幕亚洲图片| 亚洲综合大片69999| 久久久久久欧美| 欧美大片va欧美在线播放| 亚洲欧美国产另类| 91av在线精品| 国产精品ⅴa在线观看h| 国产精品久久久久久久久免费看| 欧美一级高清免费| 亚洲肉体裸体xxxx137| 久久久久久免费精品| 欧美性猛交xxxx免费看| 九色91av视频| 欧美野外猛男的大粗鳮| 国产精品96久久久久久| 一区二区日韩精品| 成人免费看黄网站| 亚洲qvod图片区电影| 一区二区在线免费视频|