♣
在Access下分页怎么写?
要求每页都只读出显示的数据,比如一页显示50条数据,则第一页读1-50条,第二页读51-100条
看到的资料都是sql2000下的
· 网友精彩回答:
可以把access数据转换成xml文件做数据源,然后再使用xpath选取你想要的数据
http://dotnet.aspx.cc/showdetail.aspx?id=b12283de-db20-4322-accc-12724442808a
我想这个需要自己写一个吧, 不知道能不能用存储过程
传递的参数应该就是当前的页数, 然后开始计算下一页开始的id
int pagesize = 5;
int nextpagestartid = (currentpage + 1) * pagesize - 1;
int nextpageendid = (currentpage + 2) * pagesize - 1;
string sql = "select * from yourtable ";
sql += "where id between @nextpagestartid and @nextpageendid ";
基本原理好像就是这样子的, 不过还有很多细节需要注意的。
比如id不是连续的话,这样写好像就有些问题........
你可以下述函数配合如下地址的分页控件达到你的目标
www.webdiyer.com
在获取数据时,fill命令有一个重载,取值的时候,可仅取你需要的条数出来.如下函数所示.
虽然,不能达到完美的程度,但对付百万条记录以下的,完全没有问题.
/// <summary>
/// 根据开始记录号和欲显示的记录条数生成datatable
/// 此取值函数为oracle,你可自行修改为access(oledb)
/// </summary>
/// <param name="sql">传递sql语句</param>
/// <param name="p_start">开始记录号</param>
/// <param name="p_rowcount">欲显示的记录条数</param>
/// <returns>返回datatable</returns>
public datatable getdt(string sql, int p_start, int p_rowcount)
{
oracledataadapter myadp = new oracledataadapter(sql, this.cn);
dataset ds = new dataset();
try
{
myadp.fill(ds,p_start, p_rowcount, "mypagedatatable");
return(ds.tables[0]);
}
catch(oracleexception ex)
{
throw ex;
}
}
select top 10 *
from t_type
where c_typecode not in (select top 20 c_typecode from t_type where c_typename like "*药*" or c_typename like "*类*") and (c_typename like "*药*" or c_typename like "*类*")
上面是查询表t_type中c_typename字段中含有"药"或"类"的第21-30条记录。
注意:
1.sql server中可以在子select中用top 0,access却不行。
2.sql server中like的%在access中变成了*
3.如果有条件限制,那么外部select和内部了select都要加上,并且注意外部条件的书写
select top 50 *
from table1
where id<
(
select min(id) from
(select top (页数-1)*50 id from table1 order by id desc)
)
order by id desc
http://www.webdiyer.com/
access数据库分页示例 sql server数据库分页示例 帮助文档 代码工具 下载控件 faq 留言
dataadapter的fill()方法
access下好多语句不能用
还有一办法,每条记录前加一个id号,那么每次在where条件里,写上id>前页结束的记录号即可。
如: select * from table1 where id>1 and id<10 或者 select top 10 * from table1 where id>1
但是需要修改表结构
2 个 top
eyych(伦敦7.7大爆炸!) 的方法应该不错,虽然需要计算页数,但页面初次载入的时候计算一次即可。
计算总数 那就要查询2次了哈
mark
.- 更多问题:
- · 哪位牛人解释一下这12行代码,Google上搜不到
- · 关于存储过程的返回值
- · 这样随机显示图片如何实现
- · const和引用
- · 一个奇怪的问题!!大家都来看看。什么原因呢、
- · 谁来书写“你可能不知道的大陆”(摘自《早报网》)
- · 日本处于“对华心理调适期”
- · 清明节、端午节、中秋节、重阳节要被定为法定节假日?
- · 你们在那吵啊吵的吵什么,真是浪费自己的感情
- · asp.net中使用框架的时候叶面显示一片空白,一点内容也没有,刚刚接触这方面技术请大家指点.
- · 求最大子段和的分治算法
- · 卢武铉告诉布什:“中国是在历史上侵略韩国多达数百次的国家,我们岂能忘记如此刻骨般痛苦的往事呢?”
- · 歌词“给你我所有”的上一句是什么?
- · 达赖喇嘛表示愿意有条件放弃“达赖”的头衔
- · 传巨浪二型导弹成功发射 具二次核打击能力
- · 请问各位,这个函数错在哪里?编译通过,运行错误。
- · gif动态图片相关
- · 共享相关问题 | 共享
- · ActiveX技术文档
- · 索引与整理
- · TreeView技术文档 | TreeView
- · 维护与测试
- · ntfs文件
- · 入侵xp
- · 改mac
- · windows 批处理
- · dns缓存
- · pdf软件
- · pdf工具
- · borland 官网
- · 后门程序
- · 系统快捷键
- · 什么是黑客,有什么用途??
- · 网吧黑客常用手法
- · 中美黑客大战
- · 请问系统恢复软件哪款效果好?
- · 系统故障恢复控制台
- · 如何恢复xp系统管理员的管理权限
- · 一键ghost恢复系统
- · 系统备份恢复软件
- · 火狐firefox

