各位是怎么做分页功能的啊

来源:百度知道 编辑:UC知道 时间:2024/09/22 23:19:59
程序打开后自动读取SQL中一编号列,然后可以自动上一页下一页翻动,上一页下一页读取编号列。但如果用户删除某一条记录,必然我那编号列也会发生混乱,我在上一页下一页翻页就不行了啊。。怎么控制游标的前后移动呢。。。

一般用分页,就会用到DataSet的对象,那么
DataSet ds = new DataSet();
(Sql/OleDb)DataAdapter dtadp = new (Sql/OleDb)DataAdapter();
dtadp.Fill(ds);
此时可以使用
int RecordNum = ds.Tables["虚表名"].Rows.Count;

获得总的记录数.
这时,用判断得到总的页数.比如,设置每页最大记录数.
private const int PageSize = 20;
则此时,获得总的页数,int PageNum = 0;
if(RecordNum % PageSize == 0)
{
PageNum = RecordNum / PageSize;
}
else
{
PageNum = RecordNum / PageSize + 1;
}
现在,PageNum里的值是总的页数,PageSize的是每页的记录数,再获得个CurrPage(当前页),基本信息就全了

你要是用的sqldatareader来读的话的确是只能前进不能后退的。。
要能前进后退必须用dataset数据集

用存储过程实现。C#里调用存储过程直接返回所想要的结果。