<% dim rs, rNum dim temp set rs=createObject("adodb.recordset") rs.open "select top 100 * from rnd_v1",conn,1 rNum=rs.recordCount-1 for each temp in fRndNoRpt(0,rNum) rs.move temp response.write rs("sbcat") response.write "<br/>" rs.movefirst next rs.close set rs=nothing 'shawl.qiu code' function fRndNoRpt(lwNum,upNum) '''''''''''''''''''''''''''''''''''''''''''' ' ASP 无重复数字随机函数, 数组实现, By shawl.qiu ' 2006-09-06 ' http://blog.csdn.net/btbtd ''''''''''''''''''''''''''''''''' ' 注意: 随机数超过1000, 不建议使用本函数. ''''''''''''''''''''''''''''''''' ' 参数说明: ''''''''''''''''''''''''''''''''' ' lwNum 为 数字数组下限, 如: 1 ' upNum 为 数字数组上限, 如: 100 ''''''''''''''''''''''''''''''''' ' sample call: ''''''''''''''''''''''''''''''''' ' dim t ' for each t in fRndNoRpt(1,100) ' response.write t&"<br/>" ' next '''''''''''''''''''''''''''''''''''''''''''' if upNum<1 or isNull(upNum) or upNum="" or isNumeric(upNum)=false then exit function if lwNum<0 or isNumeric(lwNum)=false then exit function dim num, temp dim ar() redim ar(upNum) dim j:j=0 for temp=lwNum to upNum num=num&"."&temp&"." next randomize do until num="" temp=int((upNum-lwNum+1)*rnd+lwNum) if inStr(num,"."&temp&".")<>0 then num=replace(num,"."&temp&".","") ar(j)=temp j=j+1 end if loop fRndNoRpt=ar erase ar end function 'shawl.qiu code' response.write "<p/>使用随机数函数显示1至100的不重复随机数 1:<br/>-----------------------<br/>" for each temp in fRndNoRpt(1,100) response.write temp&"<br/>" next response.write "<p/>使用随机数函数显示1至100的不重复随机数 2:<br/>-----------------------<br/>" temp=join(fRndNoRpt(1,100),"-") response.write mid(temp,1,len(temp)-1) %>