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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 靳石磊 中级黑马   /  2013-1-18 10:12  /  2150 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

现在我要根据前台传回来的页数,每页显示10条数据来进行分页。sql语句应该怎么写每次查到当前页数的10条数据?

评分

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

查看全部评分

6 个回复

倒序浏览
int CurrentIndex = 0;
PageSize = 10;
//按钮【首页】被点击
private void btnFirstButtonClick()
{
     CurrentIndex = 0;
     DoSearch();
}

//按钮【尾页】被点击
private void btnLastButtonClick()
{
     CurrentIndex = GetTotalCount()/PageSize;
     DoSearch();
}

//按钮【下一页】被点击
private void btnNextButtonClick()
{
     CurrentIndex = CurrentIndex+1;
     DoSerch();
}

//按钮【上一页】被点击
private void btnNextButtonClick()
{
     CurrentIndex = CurrentIndex - 1;
     DoSearch();
}

// 计算表中的总数据条数
private int GetTotalCount()
{
      ResultSet rs = ExecuteSQL("SELECT COUNT(*) AS TOTALCOUNT FROM T_Employee");
     return rs.getInt("TOTALCOUNT");
}

//查询当页中的数据
private void DoSearch()
{
      //计算当前页的起始行数
     String startIndex = (CurrentIndex*PageSize).ToString();
     String size = PageSize.ToString();
     ResultSet rs = ExecuteSQL("SELECT * FROM T_Employee LIMIT" + startIndex +", "+size);
      //显示查询结果
      DisplayResult(rs);
}


评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
参考分页的http://bbs.csdn.net/topics/340134909
回复 使用道具 举报
这是一种比较搞笑的分页查询语句
@PageSize表示每页显示的条数,@PageIndex表示显示的页

select * from (
        select row_number() over (order by  排序字段 ) row,*   from  要进行分页的表名
) 要进行分页的表名
where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
那怎么才不搞笑?
回复 使用道具 举报
本帖最后由 王晨 于 2013-1-19 10:35 编辑

**.aspx代码:
  1. <asp:DataGrid ID="dgNotice" runat="server"  <FONT color=#17347d><FONT face=Arial><FONT color=red>PageSize="10"</FONT></FONT></FONT>>
  2. <Columns>

  3.    ………………

  4. </Columns>
  5. <FONT color=red><PagerStyle Mode="NumericPages" />
  6. </FONT></asp:DataGrid>
复制代码
//红色部分为显示的行数

**.aspx.cs代码:
  1. protected void dgNotice_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
  2. {
  3.     dgNotice.CurrentPageIndex = e.NewPageIndex;//dgnotice为控件ID
  4.     NoticeDataBind();//这个是自己写的函数,就是在datagrid中显示数据
  5. }
复制代码

希望对你有帮助,方法很简单,单感觉挺实用的!!

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
明白你的意思了,就是还是利用控件,但是也不用每次都查询所有数据库中的数据,效率也很好~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马