当在数十万行数据中实现分页,我觉得只有直接用select * from table where id>500000 and id<500010
这种方法最快~~但是这就必须保证id列真的是一个步长为1的递增列,用标识符的话如果有删除数据就无法继续保持是按1递增了~~
大家谁有好的不麻烦的方法来解决~~?
这种方法最快~~但是这就必须保证id列真的是一个步长为1的递增列,用标识符的话如果有删除数据就无法继续保持是按1递增了~~
大家谁有好的不麻烦的方法来解决~~?
解决方案 »
- 获取按纽文本值!!
- asp.net登录问题
- DevExpress XrtaReport 报表的问题?
- asp.net 的C#基础
- 我在使用treeview的时候所遇到的问题,与checkbox相关!
- 主题:[用户控件 缓存后 引用] 欢迎关注
- 谁有Visual Studio 2005 Professional 或者 Architect
- javascript动态创建的控件在.net后台文件中如何访问
- 利用WebService技术,我做了一个无刷新asp.net网页,请大家测试一下!!!!
- 求 一个字符串 正反 替换 正则表达式
- 有没有用C#实现的水晶报表打印?
- 如何使用webrequest 用异步的方式的得到一个网页的文本
在数据库中建立一个“序号”的字段用作记数就可以了,添加记录的时候利用
rs.open "select max(序号) as xh from 病例",myconn,1,1
if isnull(rs("xh")) then
xh=0
else
xh=rs("xh")
end if
number=xh+1
rs.close
计算出序号,然后写入number删除记录的时候利用:
rs.open "select * from 病例 order by id desc",myconn,1,1
number=rs.recordcount
do while not rs.eof
newID=rs("id")&","&newID
rs.movenext
loop
rs.close
newID=left(newID,len(newID)-1)
newIDS=split(newID,",")
for i=0 to ubound(newIDS)
cmstr="update 病例 set 序号="&i+1&" where id="&newIDS(i)
myconn.execute(cmstr)
next
以保证序号的连续
对于已有的数据可以利用
rs.open "select * from 病例 order by id desc",myconn,1,1
number=rs.recordcount
do while not rs.eof
newID=rs("id")&","&newID
rs.movenext
loop
rs.close
newID=left(newID,len(newID)-1)
newIDS=split(newID,",")
for i=0 to ubound(newIDS)
cmstr="update 病例 set 序号="&i+1&" where id="&newIDS(i)
myconn.execute(cmstr)
进行一下序号的初始化。