黑马程序员技术交流社区
标题:
数据库
[打印本页]
作者:
duanhuilin
时间:
2012-10-24 09:02
标题:
数据库
哪路高手给咱讲讲数据库分页技术
作者:
许庭洲
时间:
2012-10-24 20:15
假设每一页显示的数据条数为PageSize,当前页数(从0开始技术)为CurrentIndex,那么只要查询从第PageSize*CurrentIndex开始的PageSize条数据得到的结果就是当前页中的数据。
int CurrentIndex=0;
PageSize=10;
//按钮【首页】被点击
private void btnFirstButtonClick()
{
CurrentIndex=0;
DoSearch();
}
//按钮【尾页】被点击
private void btnLastButtonClick()
{
CurrentIndex=GetTotalCount()/PageSize;
DoSearch();
}
//按钮【下一页】被点击
private void btnNextButtonClick()
{
CurrentIndex=CurrentIndex+1;
DoSearch();
}
按钮【上一页】被点击
private void btnNextButtonClick()
{
CurrentIndex=CurrentIndex-1;
DoSearch();
}
//计算表中的总数据条数
private int GetToatalCount()
{
ResultSet rs = ExecuteSQL("SELECT COUNT(*) AS TOTALCOUNT FROM T_Employee");
return rs.getInt("TOTALCOUNT");
}
//查询当前页中的数据
private void DoSearch(0
{
//计算当前页的起始行数
String startIndex=(CurrentIndex *PageSize).ToString();
String size = PageSize.ToString();
ResultSet rs=ExecuteSQL("SELECT * FROM T_Employee LIMIT" +startIndex+","size);
//显示查询结果
DisplayResult(rs);
}
作者:
王晨
时间:
2012-12-14 20:27
比如你用DataGrid 显示数据时,如下:
<aspataGrid ID="dgNotice" runat="server" >
<Columns>
……………………
</Columns>
<agerStyle Mode="NumericPages" />
</aspataGrid>
复制代码
你只要如上所述,再其中加入 <agerStyle Mode="NumericPages" />,然后再DataGrid的PageIndexChanged事件中写入代码如下:
protected void dgNotice_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
dgNotice.CurrentPageIndex = e.NewPageIndex;
NoticeDataBind();
}
这样就可以实现分页 了!
作者:
王晨
时间:
2012-12-14 20:30
补充一下:这是那个 NoticeDataBind()函数,刚刚忘记发了……给你补上!那个Class1是我写的一个类,就是执行SQL语句的,如果你需要我再发给你!这个函数很简单,就是在datagrid中显示数据!
protected void NoticeDataBind()
{
string sql;
sql = "select * from PM_notice ";
DataTable dt = Class1.GetDsFromSql(sql).Tables[0];
dgNotice.DataSource = dt;
dgNotice.DataBind();
}
作者:
刘文超
时间:
2013-1-1 08:30
sql语句分页也是一种好办法,
优点1是不局限与任何语言
优点2是不会将分页和程序页面嵌套在一起、很乱的。。
附上代码:
SELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2