asp.net如何创建存储过程分页tb_name、pageindex、pagesize作参数?
发布网友
发布时间:2022-04-11 15:50
我来回答
共1个回答
热心网友
时间:2022-04-11 17:19
这个得测试
具体不好说
可能是传的值问题
下面是我写的分页过程
可以借鉴下
ALTER
proc
[dbo].[GetRecordFromPage]
@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
@strOrder
varchar(400)
--
排序类型
if
@IsCount
!=
0
--执行总数统计
begin
if
@strWhere
!=
''
set
@strSQL=
'select
COUNT(*)
as
Total
from
@tblName
from
['+@tblName+']
where
'+@strWhere
else
set
@strSQL='select
count(*)
as
Total
from
@tblName
from
['+@tblName+']'
end
else
if
@Orderfld
!=
''
begin
if
@OrderType
!=
'asc'
begin
set
@strOrder
=
'
order
by
['
+
@Orderfld
+']
desc'
end
else
begin
set
@strOrder
=
'
order
by
['
+
@Orderfld
+']
asc'
end
end
if
@strWhere
!=
''
begin
set
@strSQL
=
'select
*
from
(
select
ROW_NUMBER()
over(order
by
'+@Orderfld+'
desc)
as
num,*
from
['+@tblName+']
as
n1
where
'+@strWhere+'
)
as
n2
where
'+@strWhere+'
and
n2.num
between
('+Convert(nvarchar(10),@PageIndex)+'-1)*'+Convert(nvarchar(10),@PageSize)+'+1
and
'+Convert(nvarchar(10),@PageIndex)+'*'+Convert(nvarchar(10),@PageSize)+'
'
end
else
begin
set
@strSQL
=
'select
*
from
(
select
ROW_NUMBER()
over(order
by
'+@Orderfld+'
desc)
as
num,*
from
['+@tblName+']
as
n1
)
as
n2
where
n2.num
between
('+Convert(nvarchar(10),@PageIndex)+'-1)*'+Convert(nvarchar(10),@PageSize)+'+1
and
'+Convert(nvarchar(10),@PageIndex)+'*'+Convert(nvarchar(10),@PageSize)+'
'
end
exec
(@strSQL)
关于ASP分页显示
+ @tblName + ' where [' + @fldName + ']' + @strTmp + '(['+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+ @fldName + '] from ' + @tblName + ' where ' + @strWhere + ' '+ @strOrder + ') as tblTmp) and ' + @str...
多参数(条件)的分页存储过程 或 sql 语句
FName varchar(1000),--字段名 TName varchar(100),--表名 pageSize int,--每页显示多少条记录 pageIndex int,--当前页面索引 sortColumn varchar(100)--排序列 )as set nocount on declare strSql varchar(2000)set strSql='select top '+cast(@pageSize as varchar(4))+''+@FName+'from...
AspNetPager能分页,但无法点击下一页,显示有3页的数据,可点下一页...
Declare @SqlString nvarchar(2000);set @StartRecord = (@PageIndex-1)*@PageSize + 1 set @EndRecord = @StartRecord + @PageSize - 1 SET @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName;--总记录数语句 SET @SqlString = N'(select row_number() over (or...
asp.net 怎么分页
如果GridView是直接绑定数据库,则很简单:只要点击GridView空间左上角的小三角形,再弹出的选项中,将"启动分页"打上勾即可。 如果是用代码实现,则需要这么做: 1、允许分页:设置AllowPaging=True; 2、设置GridView属性栏中PagerSetting里的一些属性中,定义分页的样式; 3、数据部署:将数...
ASP.MET 实现 上一页1 2 3 4 5 下一页 下5页
写一个分页函数,赋好值就可以用了 public string ThePage(int i_RecordCount, int i_pagesize, int i_pageIndex, string i_PID, string i_CssClass){ int i_Pcount = 0;int i_StartPageNum;int i_EndPageNum;string i_pagerString = "";i_pagerString = i_pagerString + "\n.CssPage...
sql存储过程分页 临时表问题
SQL Server 存储过程的分页,这个问题已经讨论过几年了,很多朋友在问我,所以在此发表一下我的观点 建立表:CREATE TABLE [TestTable] ([ID] [int] IDENTITY (1, 1) NOT NULL ,[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,[LastName] [nvarchar] (100) COLLATE Chinese...
sp_executesql怎么实现的,关键是后面的参数可以不确定个数,类型!
pagesize 页码大小 可选 默认值:1 pageindex 当前页 可选 默认值:1 docount 是否只统计总记录数 可选 默认值:否 Fields 选择字段 可选 默认:所有字段 Sort 排序语句,不带Order By 可选 Filter 过滤语句,不带Where 可选 / === / CRE...
ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例相关下载,就是...
var buxianding = this.form1.buxiandingmark.value;if ( buxianding == 'T'){ document.getElementById("producdt_ply").readonly = false;} 页面中的控件如下
在ASP.NET中分页按时间降序的问题
回答:关个top什么事,你分页要排序必须主和子查询语句都带排序, "select top " + pageSize + " * FROM tb_Notice where nid not in (select top " + (pageIndex - 1) * pageSize + " nid from tb_Notice order by acceptme desc) order by acceptme desc";这样就可以
怎么在asp.net中的listView中使用DataPager来实现分页
|<asp:LinkButton runat ="server" ID ="lbtnLast" Text ="尾页" onclick="lbtnLast_Click"></asp:LinkButton> 后台:int pageindex = 0;protected void lbtnFirst_Click(object sender, EventArgs e) { pageindex = 0;BindPage();} protected void lbtnPre_Click(object sender, ...