程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> asp下sql和access數據庫隨機取10條記錄的代碼newid()

asp下sql和access數據庫隨機取10條記錄的代碼newid()

編輯:關於ASP編程
MSSQL:select top 10 * from [table] order by newid()

ACCESS: 

復制代碼 代碼如下:
'以利用rs.move嘛  
'如隨機取10條  
n = 10  
'先要判斷總記錄數是否少於10,若小於10,則有多少取多少 if n>10 rs.recordCount then n=rs.recordCount  
dim ranNum  
for i = 1 to n  
Randomize()  
ranNum = int(rs.recordCount*rnd)+1 '產生一個隨機數  
rs.Move ranNum '移動游標到隨機數位置  
response.write i & "-" & rs("title") & "<br />" '輸出內容  
rs.Move -ranNum  
next  
'……  
        這樣就可以了,當然這樣有可能會取到重復的記錄,那麼把產生隨機數那句改下就可以了,聲明一個變量來存放已經產生過的隨機數,在產生新的隨機時先判斷是否已經產生過,若產生過則重新生成就是了,這個就比較簡單了,用instr等就可以搞定了~~ 

       思路是這樣,其它自己動手試試吧。 不重復讀取還有個辦法就是只產生一個隨機數,然後挨著讀取這個隨機數後面的N條記錄。當然也要寫好判斷,隨機數要小於總記錄數-要讀取記錄數量。 

復制代碼 代碼如下:
'……  
dim n,ranNum  
n = 10  
Randomize()  
ranNum = rs.recordCount-n  
if ranNum<1 then ranNum=1  
ranNum = int(ranNum*rnd)+1  

rs.Move ranNum  
for i=1 to 10  
response.write i & "-" & rs("title") & "<br />" '輸出內容  
rs.MoveNext '挨著向下讀取  
next  
'……  
建議自己寫個簡單的Function來產生和判斷不重復隨機數。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved