<% Dim Con,RS Set RS = Con.Execute("SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd([id_])") %> <% Dim Con,minPID,RS Randomize
Set Con = Server.CreateObject("ADODB.CONNECTION")
Con.ConnectionString = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("*.mdb")
Con.CommandTimeout = 20
Con.CursorLocation = 3
Con.Open
Do While Not RS.EOF
Response.Write RS.Fields("content_").Value & "<br />"
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Con.Close
Set Con = Nothing
在localhost上运行一下这个ASP,看到结果了吧,记住!再F5一下!咦?~~~~~~~~~~~还那个结果!这可不是我们想要的!
当然了,rnd在运行前应该执行Randomize语句的!
可是怎么执行?
Access里支持Randomize么?我的Access也不是很熟,看了一下帮助,只找到了VBS里的那个Randomize……
解决问题是每个程序员最来精神的!
赶紧Google一下!
翻了半天也没有好的解决方案,有的干脆用asp来循环的找position,呸,费了半天劲干什么呢,我就想SQL解决怎么办?
Access里的Randomize不知道怎么用,asp的基本功还会吧?开动脑筋,有了!
Set Con= Server.CreateObject("ADODB.CONNECTION")
Con.ConnectionString = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("*.mdb")
Con.CommandTimeout = 20
Con.CursorLocation = 3
Con.Open
Set RS = Con.Execute("SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd(-(id_+" & rnd() & "))")
Do While Not RS.EOF
Response.Write RS.Fields("content_").Value & "<br />"
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Con.Close
Set Con = Nothing
%>
嗯,这回再试一试!
OK了!每次F5后都能是“随机”的感觉了
如果您有更好的解决办法或建议请告诉我,谢谢!