A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高宜 中级黑马   /  2012-7-31 10:39  /  1589 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. select * from
  2. (
  3. select newsId,newsTitle,newsText,newsDate,Row_Number() over(order by newsId) rownum from dbo.news
  4. )t
  5. where t.rownum>@startRowIndex and t.rownum<=@startRowIndex+@maximumRows
复制代码
中startRowIndex、和maximumRows是通过回调的方式调用,关于回调不是很理解;
怎么调整当前页中显示的行的条数。
自己想在SQL中
  1. select * from
  2. (
  3. select newsId,newsTitle,newsText,newsDate,Row_Number() over(order by newsId) rownum from dbo.news
  4. )t
  5. where t.rownum>@startRowIndex and t.rownum<=@startRowIndex+@maximumRows+5
复制代码
来尝试调整每页显示的行数,但没有效果,求高手指点

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

6 个回复

倒序浏览
将where t.rownum>@startRowIndex and t.rownum<=@startRowIndex+@maximumRows条件语句修改为where t.rownum>@startRowIndex and t.rownum<=(@startRowIndex+@maximumRows)试试看。
回复 使用道具 举报
嘿嘿,开始声明的时候是true;,当你输入一个非数字的时候程序就会报异常,flag就会变成false,然后就跳出出循环了;输入一个正确的数字的时候,flag初始化就是true,也就是flag再次设定为true;,看来确实没什么意思,不过最好还是存在的好,如果flag声明的时候不赋值就不同了,带着这样看着明白,

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
许庭洲 发表于 2012-7-31 10:58
将where t.rownum>@startRowIndex and t.rownum@startRowIndex and t.rownum

恩 严谨点是应该加上括号,但不影响运行。
回复 使用道具 举报
本帖最后由 高宜 于 2012-7-31 11:15 编辑
蔡尚猛 发表于 2012-7-31 10:58
嘿嘿,开始声明的时候是true;,当你输入一个非数字的时候程序就会报异常,flag就会变成false,然后就跳出出 ...
原来是发错位置了。。。。
回复 使用道具 举报
高宜 发表于 2012-7-31 11:03
恩 严谨点是应该加上括号,但不影响运行。

dbo.news,将表名前缀dbo去掉试试看!
回复 使用道具 举报
高宜 中级黑马 2012-7-31 11:18:50
7#
许庭洲 发表于 2012-7-31 11:10
dbo.news,将表名前缀dbo去掉试试看!

谢了,关于高效分页的SQL语句执行没有问题,只是不懂这里startRowIndex和maximumRows通过回调是怎么传递参数的,能否修改其值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马