C#存储过程分页
2014-05-08 17:55
387 查看
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@OrderfldName varchar(255)='', -- 排序字段
@PageSize int = 10, -- 页大小
@PageIndex int = 1, -- 页码
@OrderType bit = 0, -- 设置排序类型, 非值则降序(0为desc降序 1为asc升序)
@IsReCount bit = 0, -- 返回记录总数, 非值则返回(1为返回)
@strWhere varchar(1000) = '' -- 查询条件(注意: 不要加where)( and Price>2000)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(100) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
--判断你是否提供了,排序字段
if(@OrderfldName!='')
begin
if(@OrderType!=0)
begin
--拼接字符串
set @strOrder=' order by ['+@OrderfldName+'] asc'
end
else
begin
set @strOrder=' order by ['+@OrderfldName+'] desc'
end
end
else
begin
set @strOrder=' '
end
--是否求记录数
if(@IsReCount!=0)
begin
--是否有条件
if(@strWhere!='')
begin
set @strTmp='select Count(1) from ['+@tblName+'] where 1=1 '+ @strWhere
end
else
set @strTmp='select Count(1) from ['+@tblName+'] where 1=1 '
end
else
--求第10到第20条数据
set @strTmp=' ' if(@IsReCount=0)
begin
set @strSQl='Select top '+str(@PageSize)+' * from ['+@tblName+'] where ['
+@fldName+'] not in (select top '+str((@PageIndex-1)*@PageSize)+' ['
+@fldName+'] from ['+@tblName+'] where 1=1 '
+ @strWhere+@strOrder+') '+@strWhere+@strOrder+';'
end
else
begin
set @strSQl = @strTmp
end
print (@strSQL)
execute(@strSQL)
CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@OrderfldName varchar(255)='', -- 排序字段
@PageSize int = 10, -- 页大小
@PageIndex int = 1, -- 页码
@OrderType bit = 0, -- 设置排序类型, 非值则降序(0为desc降序 1为asc升序)
@IsReCount bit = 0, -- 返回记录总数, 非值则返回(1为返回)
@strWhere varchar(1000) = '' -- 查询条件(注意: 不要加where)( and Price>2000)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(100) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
--判断你是否提供了,排序字段
if(@OrderfldName!='')
begin
if(@OrderType!=0)
begin
--拼接字符串
set @strOrder=' order by ['+@OrderfldName+'] asc'
end
else
begin
set @strOrder=' order by ['+@OrderfldName+'] desc'
end
end
else
begin
set @strOrder=' '
end
--是否求记录数
if(@IsReCount!=0)
begin
--是否有条件
if(@strWhere!='')
begin
set @strTmp='select Count(1) from ['+@tblName+'] where 1=1 '+ @strWhere
end
else
set @strTmp='select Count(1) from ['+@tblName+'] where 1=1 '
end
else
--求第10到第20条数据
set @strTmp=' ' if(@IsReCount=0)
begin
set @strSQl='Select top '+str(@PageSize)+' * from ['+@tblName+'] where ['
+@fldName+'] not in (select top '+str((@PageIndex-1)*@PageSize)+' ['
+@fldName+'] from ['+@tblName+'] where 1=1 '
+ @strWhere+@strOrder+') '+@strWhere+@strOrder+';'
end
else
begin
set @strSQl = @strTmp
end
print (@strSQL)
execute(@strSQL)
相关文章推荐
- c# 软件自动升级 程序自我关闭自己后重启
- C#实现图标按钮
- C# Random的种子
- 从内部剖析C# 集合之---- HashTable
- C#在winform中实时显示即时时间
- C#中Dictionary的作用
- VS2008中C#开发webservice简单实例
- C# 获取文件名及扩展名
- C# 获得 某年某月第几个星期几 的日期
- C#发送邮件代码
- C#.Net集成Bartender条码打印的方法(泪流满面终于解决!)
- (转载)Net 下采用GET/POST/SOAP方式动态调用WebService C#实现
- C#导出数据至excel模板
- C# CacheHepler Class
- C#下点击右键之后自动选择为当前选中的节点
- C#定时器
- c# 获取根节点的属性信息
- C# 属性控件PropertyGrid应用心得
- 用C#实现C/S模式下软件自动在线升级
- 逆波兰表达式解数学运算(c#)