alter PROCEDURE [dbo].[GetsearchPage]
@nPage int,---第几页
@Pnum int,--每页页数
@key nvarchar(100),
@f_allidnum nvarchar(100) output --返回总页数
AS
declare @sql nvarchar(3000),@c nvarchar(20)
set @sql='WITH OrderedOrders AS
(SELECT count(id),soft_names,addtime,softsize,soft_garde,system_set,downcount,
ROW_NUMBER() OVER (order by [id])as RowNumber FROM soft where soft_names like ''%'+@key+'%'''+' )
SELECT id,soft_names,addtime,softsize,soft_garde ,system_set,downcount
FROM OrderedOrders
WHERE RowNumber>'+cast((@nPage-1)*@Pnum as nvarchar(50))+' and RowNumber<='+cast(@nPage*@Pnum as nvarchar(50))
set @sql=@sql+' order by addtime desc'set @sql=@sql+' select '+cast(@f_allidnum as nvarchar(20))+'=count(*) from OrderedOrders '
exec(@sql)@f_allidnum总是null
@nPage int,---第几页
@Pnum int,--每页页数
@key nvarchar(100),
@f_allidnum nvarchar(100) output --返回总页数
AS
declare @sql nvarchar(3000),@c nvarchar(20)
set @sql='WITH OrderedOrders AS
(SELECT count(id),soft_names,addtime,softsize,soft_garde,system_set,downcount,
ROW_NUMBER() OVER (order by [id])as RowNumber FROM soft where soft_names like ''%'+@key+'%'''+' )
SELECT id,soft_names,addtime,softsize,soft_garde ,system_set,downcount
FROM OrderedOrders
WHERE RowNumber>'+cast((@nPage-1)*@Pnum as nvarchar(50))+' and RowNumber<='+cast(@nPage*@Pnum as nvarchar(50))
set @sql=@sql+' order by addtime desc'set @sql=@sql+' select '+cast(@f_allidnum as nvarchar(20))+'=count(*) from OrderedOrders '
exec(@sql)@f_allidnum总是null
解决方案 »
- visual 2005 突然不能运行网页了!
- 调查一下,做程序的有多少抽烟的
- 成幻Online Judge 1.00 Beta 正式发布 有兴趣的顶一下
- 如何截取字符串?
- 我在dataGrid中的一列(“考试成绩”)使用textbox做模板列,这样就可以文本框的形式显示内容并可以编辑,但不知如何将textbox模板列这些
- 从数据库SELECT一个数据,怎么把它赋值给变量?
- 如何在DropDownList控件中绑定Calendar日历控件?
- vs05 的Treeview的treenode如果绑定XML文档?
- 求一个jquery封装好的日期+时间控件 分开的
- 连接字符的问题
- 奇怪的问题:System.Exception: 没有找到站点
- frameset 的问题
select @f_allidnum =count(*) from OrderedOrders;
@tblName varchar(255), -- 表名
@RetColumns varchar(1000) = '*', -- 需要返回的列,默认为全部
@Orderfld varchar(255), -- 排序字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType varchar(50) = 'asc', -- 设置排序类型, 非 asc 值则降序
@strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(1000) -- 主语句
declare @strTmp varchar(300) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @IsCount != 0 --执行总数统计
begin
if @strWhere != ''
set @strSQL = "select count(*) as Total from [" + @tblName + "] where " + @strWhere
else
set @strSQL = "select count(*) as Total from [" + @tblName + "]"
end
else --执行查询操作
begin
if @OrderType != 'asc'
begin
set @strTmp = "<(select min"
set @strOrder = " order by [" + @Orderfld +"] desc"
end
else
begin
set @strTmp = ">(select max"
set @strOrder = " order by [" + @Orderfld +"] asc"
end
set @strSQL = "select top " + str(@PageSize) + " " + @RetColumns + " from ["
+ @tblName + "] where [" + @Orderfld + "]" + @strTmp + "(["
+ @Orderfld + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @Orderfld + "] from [" + @tblName + "]" + @strOrder + ") as tblTmp)"
+ @strOrder
if @strWhere != ''
set @strSQL = "select top " + str(@PageSize) + " " + @RetColumns + " from ["
+ @tblName + "] where [" + @Orderfld + "]" + @strTmp + "(["
+ @Orderfld + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
+ @Orderfld + "] from [" + @tblName + "] where (" + @strWhere + ") "
+ @strOrder + ") as tblTmp) and (" + @strWhere + ") " + @strOrder
if @PageIndex = 1
begin
set @strTmp = ""
if @strWhere != ''
set @strTmp = " where (" + @strWhere + ")"
set @strSQL = "select top " + str(@PageSize) + " " + @RetColumns + " from ["
+ @tblName + "]" + @strTmp + " " + @strOrder
end
end
exec (@strSQL)