推薦:ASP 與ASP有什麼不同在以前的文章中我們認識到ASP 是一個完整的操作系統的一部分。但是為什麼ASP 不同於以前版本的ASP?他們之間到底有什麼不同?如果你僅僅是運行一些頁面或應用程序,那麼你可能完全不會注意到他
學習ASP時,必不可少的就是用到增、刪、改、查四大操作。最麻煩的就是把數據庫裡的數據輸出到客戶端。數據很少的時候,比如一個數據庫中就有幾條,這樣直接輸出就可以了。但如果數據很多的時候,只靠SQL的優化就不能完成查詢了。
那麼,怎樣才能優化查詢結果呢?也許我們會想到分頁,對,ASP內置組件給我們提供了RecordSet 對象,我們可以利用這個對象的幾個屬性,就能很方便地得到自己想要的結果了。
大部分學過ASP的朋友都能寫出分頁代碼,那好吧,我們也這樣寫。
假設我們已經連上數據庫。
<!--#include file=conn.asp --> '把數據庫連接字符串包含過來
rs.pagesize=10 '設置每頁顯示10條記錄
page=cint(request(page)) '使用queryscring獲取當前前數
if page<1 then page=1 '當頁數小於1時顯示第一頁
if page>rs.pagecount then page=rs.pagecount '當頁數大於最後一頁時顯示最後一頁
myself=request.serververiables(path_info) '獲取當前頁的相對路徑
if page>1 then rs.absolutepage=page '如果頁數大於1則顯示絕對頁數
'循環輸出頁數
for i=1 to rs.pagecount
if rs.eof then exit for '記錄在最後一條的後面退出循環
if i=page then
response.write | &i& |
else
response.write | <a href=&myself&/page=&i&>&i&</a> |
end if
end for
'循環輸出記錄條數
for i=1 to rs.pagesize
if rs.eof then exit for
response.write rs(id)
response.write rs(user)
response.write rs(pwd)
rs.movenext
end for
'關閉數據庫以及連接
rs.close
conn.close
set conn=nothing
set rs=nothing
但是,這樣並不能達到最佳優化。如果我們在page後面這樣輸入:page=adsf 。我們就會看到出錯結果,因為cint函數不能把字符串轉換為整數。有時你會看到沒有錯誤,那是因為你在數據庫連接時寫了這樣的語句:on error resume next 。意思就是當程序出錯時不影響其他語句繼續執行。如果我們把這段代碼給刪了,就會錯誤。所以,我們就考慮,怎樣才能不錯誤呢?我們可以把這樣的語句:
page=cint(request(page))
這樣寫:
page=strim(request(page))
if IsNumeric(page) then
page=cint(page)
else
page=1
end if
這樣,當我們輸入數字時,不管是小數還是其他的數,它都會轉換為整數,當我們輸入的是非數字時,page就等於1,這樣就保證了程序不會出錯了!
分享:簡單WEB開發規範一.頁面設計部分1.img控件alt:所有展示類圖片都要具有能簡要描述圖片內容的文字說明。 2.Input控件maxlength:所有INPUT控件都需要製定maxlength屬性,默認值為數據庫中對應的字段的長度。