3天结贴! 二次查询 加 分页 怎么做效率比较高(记录很多)

ilcjeff 2004-05-12 01:24:20
3天结贴!
...全文
164 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CMIC 2004-05-12
  • 打赏
  • 举报
回复
数据库量大时同意使用存储过程分页,ACCESS也可以使用存储过程。
ajex 2004-05-12
  • 打赏
  • 举报
回复
二楼已经说的很清楚了.推荐store procedure
hkz2008 2004-05-12
  • 打赏
  • 举报
回复
学习,up!
crodling 2004-05-12
  • 打赏
  • 举报
回复
如果在本页面增删数据呢,总记录数量不是要变化么,session只是第一次加载变化,而postback不变
活靶子哥哥 2004-05-12
  • 打赏
  • 举报
回复
第一次页面加载后 把计算的总记录数存入变量 session或者 url参数
下次就不需要再计算总记录数了
vzxq 2004-05-12
  • 打赏
  • 举报
回复
学习,帮你UP
ilcjeff 2004-05-12
  • 打赏
  • 举报
回复
不用存储过程怎么实现?
ilcjeff 2004-05-12
  • 打赏
  • 举报
回复
我用的ACCESS :)
cuike519 2004-05-12
  • 打赏
  • 举报
回复
用存储过程查询分页!
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=193129
http://webdiyer.europe.webmatrixhosting.net/

下面是一个存储过程分页的存储过程(转贴)
CREATE proc page
@pagenum int
as
SET NOCOUNT ON /*-----这一句很重要哦:)),不然它只会认 insert #change......这个数据集:))*/
declare @sql nvarchar(500) --声明动态sql执行语句
declare @pagecount int --当前页数

--取得当前数据库的记录总数
declare @row_num int
begin
select @row_num=count(*) from cat_list

--创建临时表,作为数据过滤
create table #change (T_id int)

--判断当前页数
if @row_num>6 --大于页面显示记录数,则分页
begin
set @row_num=@pagenum*6

if @row_num=6
select top 6 * from cat_list
else
begin
set @row_num=(@pagenum-1)*6
set @pagecount=@row_num
set @sql=N''insert #change (T_id) select top ''+cast(@pagecount as char(100))+'' T_id from cat_list where T_id not in (select T_id from #change)''
exec sp_executesql @sql
select top 6 * from cat_list where T_id not in (select T_id from #change)
end
end
else --只现实全部的数据
select * from cat_list
end
GO

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧