标题:[求助]求更好的Access数据库随机取记录算法?
只看楼主
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
 问题点数:0 回复次数:3 
[求助]求更好的Access数据库随机取记录算法?

这段时间要做一个C/S的程序,选择用ACCESS做为数据库。现在需要对数据库的记录进行查询,然后随机挑出其中的100条记录,然后一条一条的显示出来。我现在想到的方法有两个,大家看看还有没有更好的算法?

第一种方法:

  先使用关键字对数据库进行查询,然后将查询结果存入一个多维数组,再对数组进行随机排序,最后取出前100条。

第二种方法:

先使用关键字对数据库进行查询,然后建立一个随机函数(0,1)和一个多维数组,然后对查询到的数据集进行读取,在循环当中加入一个随机函数(0,1),当随机函数为1时就将数据存入数组,直至记录够100条止。
(数据库超过20000条,应该能取够100条记录,不过这样相对来说还是不太安全,可能会出现当20000条记录循环完成后100条记录不满的情况。

现在只能想到这两种方案,两种方法目前都不是太满意。请教一下各位,是否还有更好的方法呢?

搜索更多相关主题的帖子: 数据库 算法 多维 Access 随机 
2007-08-30 11:19
crazymk
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-8-30
得分:0 
貌似和C#無關。直接用SQL文就可以實現

すばらしいコードを書き出すのは楽しい事です
2007-08-30 14:15
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
得分:0 
你的意思是说直接用SQL的语句可以实现?好像没发现有这样的语句,呵呵!我的SQL学得比较烂。具体的语句是怎样呢?

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2007-08-30 14:17
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
得分:0 
而且我知道的SQL是有一条可以生成随机记录,但是好像只能在SQL里使用?如果用ODBC连接的ACCESS不知道是不是支持,这个我没试过,晚一点试下。但是有个问题,如果直接用的话一定的机率下会有重复。我要求是不重复的记录。

附上SQL的语句:SELECT TOP n * FROM tanblename ORDER BY NEWID()

(你说的语句应该是这个吧?)

[此贴子已经被作者于2007-8-30 14:21:53编辑过]


浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2007-08-30 14:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-166457-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091553 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved