分页
一.假分页 #region 全局变量int currentPage=1;//当前页码
int pageSize=8;//一页显示的记录条数
DataTable dt=new DataTable();//查询到的所有数据
#endregion
#region 分页
/*控制“上一页”“下一页”的启用状态*/
private void pageButtonStatus()
{
buttonPreviousPage.Enabled=true;
buttonNextPage.Enabled=true;
if(pageSize*(currentPage-1)!=0&&pageSize*(currentPage-1)==dt.Rows.Count)
{
currentPage--;
}
if(pageSize*(currentPage-1)==0)
{
buttonPreviousPage.Enabled=false;
}
if(pageSize*currentPage>=dt.Rows.Count)
{
buttonNextPage.Enabled=false;
}
}
/*绑定当前页码的数据*/
private void currentPageDataBind()
{
DataTable tempDt=dt.Clone();
for(int i=pageSize*(currentPage-1);i<(dt.Rows.Count>pageSize*currentPage?pageSize*currentPage:dt.Rows.Count);i++)
{
tempDt.Rows.Add(dt.Rows[i].ItemArray);
}
dataGridView1.DataSource=tempDt;
}
/*上一页*/
private void buttonPreviousPage_Click(object sender,EventArgs e)
{
currentPage--;
pageButtonStatus();
currentPageDataBind();
}
/*下一页*/
private void buttonNextPage_Click(object sender,EventArgs e)
{
currentPage++;
pageButtonStatus();
currentPageDataBind();
}
#endregion 二.真分页 1.适用于SQL Server 2000/2005select top 页大小 * from table1 where id not in ( select top 页大小*(页数-1) id from table1 order by id ) order by id
2.适用于SQL Server 2005select top 页大小 *
from
(
select ROW_NUMBER() over (order by id) as RowNumber,* from table1
) a
where RowNumber > 页大小*(页数-1)3.适用于SQLite
通用公试:sql = "select * from FlyCrocodile where "+条件+" order by "+排序+" limit "+要显示多少条记录+" offset "+跳过多少条记录;
或者sql="select * from FlyCrocodile where "+条件+" order by "+排序+" limit 路过多少条记录,要显示多少条记录;
如:select * from flycrocodile limit 15 offset 20 或者 select * from FlyCrocodile limit 20,15
意思是说:从flycrocodile表跳过20条记录选出15条记录
作者:sy
出处:http://www.cnblogs.com/sydeveloper
QQ:522733724
本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,
且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利