黑马程序员技术交流社区

标题: 关于sql语句分页的问题 [打印本页]

作者: 靳石磊    时间: 2013-1-18 10:12
标题: 关于sql语句分页的问题
现在我要根据前台传回来的页数,每页显示10条数据来进行分页。sql语句应该怎么写每次查到当前页数的10条数据?

作者: 许庭洲    时间: 2013-1-18 11:12
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);
}



作者: 詹卓锋    时间: 2013-1-18 11:59
参考分页的http://bbs.csdn.net/topics/340134909
作者: 乔培培    时间: 2013-1-18 13:09
这是一种比较搞笑的分页查询语句
@PageSize表示每页显示的条数,@PageIndex表示显示的页

select * from (
        select row_number() over (order by  排序字段 ) row,*   from  要进行分页的表名
) 要进行分页的表名
where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex
作者: 靳石磊    时间: 2013-1-18 18:09
那怎么才不搞笑?
作者: 王晨    时间: 2013-1-19 10:34
本帖最后由 王晨 于 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. }
复制代码

希望对你有帮助,方法很简单,单感觉挺实用的!!
作者: 靳石磊    时间: 2013-1-20 14:26
明白你的意思了,就是还是利用控件,但是也不用每次都查询所有数据库中的数据,效率也很好~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2