|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
最近帮学校做一个东西,大概两天就弄出来一个,而且今天也上缴了,但是总是觉得有一些担心。忽然想测试测试,本来是想测试一下用二分法对数据进行选取的,但是,不知道怎么能得到Last Record And First Record,所以,就想慢慢测试测试,怎么能得到Last And First Record,但是实际中的测试吓一大跳。asp数据集的有可能乱套。 以前,写asp读取数据时,总是用“select * from table”直接选取数据,然后用 If Not Rs.Eof Then Rs.MoveLast Do While Not Rs.Bof Then Response.Write Rs(“ID“) ..... Loop End If 简朴的说就是用一个循环直接读取数据库所有数据,但是假如数据有几万条的话,速度是可想而知的了,所以想用二分法对数据进行选择显示,但是不知道怎么能得到开始和最后的数据,又想到了Rs.Bof Rs.Eof 本来是想怎么能得到字段ID的最大值,最小值,然后好比较的,但是实际操作中发现,假如你用下面的东西,不一定得到最大值和最小值: If Not Rs.BOf Then Rs.MoveFirst frsID=Rs("ID") End If If Not Rs.Eof Then Rs.MoveLast lstID=Rs("ID") End If Do While Not Rs.Bof response.Write "ID is "&rs("ID")&" " rs.Moveprevious Loop response.Write "First ID="&frsID&" " Response.Write "Last ID="&lstID&" " 显示的frsID=6,lstID=15,可是在显示的全体数据中有一条数据的ID为16,也就是说最大的ID!=lstID(以前我总是认为这个是想等),最后检查发现是sql语句有问题,改成“Select * from Login Order By ID Asc”时,显示: ID is 16 ID is 15 ID is 14 ID is 13 ID is 12 ID is 11 ID is 10 ID is 8 ID is 7 ID is 6 First ID=6 Last ID=16 将sql换成Select * from Login Order By ID Desc”时,却是: ID is 6 ID is 7 ID is 8 ID is 10 ID is 11 ID is 12 ID is 13 ID is 14 ID is 15 ID is 16 First ID=16 Last ID=6 这样两个数据的排列完全和sql中要求的不相同(本来是Asc的再显示的时候是Desc,向Desc的现实的确实Asc的),而且显示出来的东西和Login表中数据也完全不相同。 结论:数据的排列完全是靠Sql和RecordSet双方控制的。在你没有对指针记录操作时,指针记录是乱得,最好对数据操作时,先整理一下数据的排列,让它能够按序排列,方便以后操作。 返回类别: 教程 上一教程: 上传的进度条 实时反映上传情况 下一教程: REPLACE()函数的另类用法 您可以阅读与"小心数据集乱套"相关的教程: · ASP实现批量录入数据的实现 · 完整的访问统计系统(一:数据库篇) · 人民银行网站建设中数据库存储过程的调用 · 在ASP中操作数据库的方式 · 对数据库中的记录用上一条下一条显示(二) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |