注册 登录
编程论坛 ASP技术论坛

asp+Access 如何随机读取一个值

porsun 发布于 2011-07-07 14:50, 596 次点击
  请教各位,我现在有个难点无法突破,请大家帮忙指点一下:
  下面是原来的代码,功能是这样子的:按条件从Access数据库的club表中把符合IsLeaf=false and IsApproved=True和RightNumber is null or LeftNumber is null的"Number"读取,显示在表单的旁边,只有去点击选中,才会写入对话框内。
   缺点:无论怎么刷新,读取的都是原来那个,无法读取其他符合条件的值。
             <td>
               <input type="text" name="ParentNumber" size="20" id="ParentNumber" value="<%=parentid%>">                  
              <%
                 dim Location
                 ParentID=""
                 set Rs=nothing
                   set Rs=server.CreateObject("adodb.recordset")
                 sql = "select * from Club where IsLeaf=false and IsApproved=True"   
                 sql = "select * from Club where  RightNumber is null or LeftNumber is null "   
                 Rs.Open sql,conn
                  if rs.recordcount>0    then
                  response.write "请单击随机获取<a href='javascript:' onclick=form1.ParentNumber.value='"&rs("Number")&"';><font color=blue>"&rs("Number")&"</font></a>"              
                 end if
                 
                  %>
         </td>
  我的目标,如何让程序每刷新一次,都可以去club表中把符合IsLeaf=false and IsApproved=True和RightNumber is null or LeftNumber is null的"Number"的值随机读取,直接写入对话框内,无需再去点击选中?每次刷新所读取的值都不一样。

  恳请大家帮忙解答,好么?
8 回复
#2
towering2011-07-07 17:36
我的网站的随即文章是这样做的,不知道对你有没有帮助:

sql="select top "&num&" title from News order by rnd(-(id & "& int((10000 * rnd()) + 1)& "))"
#3
porsun2011-07-07 23:42
不行哦,报错。 不过谢谢你咯

  还有谁会的吗?多指点啦。。我没学过这些变程,不是很会,一直都是自己在黑暗中探索。
#4
porsun2011-07-08 00:30
我的期望是去club表中把符合“IsLeaf=false and IsApproved=True”和“RightNumber is null or LeftNumber is null”的"Number"随机读取一个出来,这样不难吧?

参考了很多网上公布的方式,没一个可以的,恳请大家帮忙啦
#5
porsun2011-07-08 13:13
别沉了,大家看看吧,没一个会的吗?

站长,露面啦~ 把我从黑暗中牵引上来吧~  
#6
dzt00012011-07-08 14:41
网上去搜 “ASP 随机显示 记录”,有多种办法可以解决
#7
porsun2011-07-09 09:09
该搜的都搜了,就是无法解决

大家帮忙写几行代码啦
#8
dzt00012011-07-09 09:37
网上不是搜得到的吗?
Randomize
sql="select top 10 * from [table] order by Rnd("&Rnd()&"-id)"

这是随机10条记录的,id是自动编号的字段名。

改改不就是你要的了吗?你要一个就改成top 1,有条件的就把where语句加上


 
你并列写两句SQL语句是什么意思?这只会执行后一句
sql = "select * from Club where IsLeaf=false and IsApproved=True"   
sql = "select * from Club where  RightNumber is null or LeftNumber is null


[ 本帖最后由 dzt0001 于 2011-7-9 09:38 编辑 ]
#9
porsun2011-07-09 23:42
感谢dzt0001,   感谢towering, 终于成功了。谢谢哦

拿给大家分享:
     set HyRs=server.CreateObject("adodb.recordset")
     Randomize
     sql = "select top 1 * from Club where RightNumber is null or LeftNumber is null order by rnd(-(hyid & "& int((10000 * rnd()) + 1)& "))"
     HyRs.Open sql,conn
1