td> input name=username type="text" maxlength="20"> /td> /tr> tr> td>font size=2>密nbsp;碼:/font>/td> td> input type="password" name=password maxlength="20"> /td> /tr> tr> td colspan="2" align=center> input type="submit" value=登錄>nbsp; input type="reset" value=重置> /td> /tr> /table> /center> /form> /body> /html> 二,我們在做一個頁面來接受這些數(shù)據(jù),這個頁面就叫checklogin.asp % '-------------------為防止出錯我們定義username和password---------------- dim username dim password '--------用request的form方法來接受login.asp頁面?zhèn)鱽淼闹?,并付值給我們定義的username和password username=request.form("username") password=request.form("password") '---------判斷傳來的值是不是空值 if username="" then '用response的write的方法輸出一個腳本 response.write"script>alert('用戶名不能為空')/script>" response.end end if if password="" then response.write"script>alert('密碼不能為空')/script>" response.end end if '----------判斷用戶名和密碼是不是一樣的,如果一樣的輸出"登陸成功"并把session的標志給這個用戶,否則就輸出"登陸失敗" if username="admin" and password="admin" then response.write"登陸成功" session("loginok")=username else response.write"登陸失敗" '重定向到login.asp response.redirect"login.asp" end if %> 這里我們用到了request.form的方法(接受數(shù)據(jù)) response的write(輸出數(shù)據(jù))和redirect(重定向) session的會話,這里我先簡單的說說session的作用吧, 就拿我的同學錄來說吧!這里會判斷用戶的級別和權限(如:沒有審核同學,通過審核的同學,班級管理員)如果用戶登陸成功了, session就和server產生了會話,沒有審核同學就付值為session(userlevel)=1,通過審核的同學就付值為session(userlevel)=2 班級管理員就付值為session(userlevel)=3,這樣就有效的區(qū)別的用戶的權限和級別。 類似的做用的還有cookies,它也有這樣的作用,不同的是cookise是產生到客戶端的。。。。 我在這個例子里主要講解了request和response的用法,其實他們還有一些屬性和方法, 這里我只是講解了常用的,希望大家有空看看這里我沒有提到的屬性方法 這個例子我沒有把用戶和密碼放到數(shù)據(jù)庫中是為了方便大家的理解, 下一節(jié)我們將講解怎么樣連接數(shù)據(jù)庫和實現(xiàn)操作數(shù)據(jù)庫的。。。。
----------------------------------------------------------------------------------------------------------------------- 5天搞定asp 第二天 今天我們主要講解ASP中常用的SQL語句,和怎樣在頁面中執(zhí)行SQl 語句。。。 其實常用的語句無外乎數(shù)據(jù)的“增,刪,改”好象所有的數(shù)據(jù)處理程序中都有這幾種操作,下面我們先寫sql語句,如果您需要了解更多的請 看我的Blog.91time.com中的SQl語句經典或看看SQL的書籍> -----(一)--查詢--------- 1,首先我們要做第一個查詢>,這是SQl中最基本的語句了, select * from [表名] where [條件] order by [條件] desc 其中,desc降序,默認是asc升序, 例子:select * from news where news_id='"news_id"' order by news_id desc 意思就是查詢news表中的"*"代表所有數(shù)據(jù),條件是news_id等于 news_id然后按照news_id 的降序排列 在查詢里還能用到group by分組排序等等,這里就不系說了。 2,count()函數(shù)用來計算記錄的行數(shù)。 例:select count(*) from news 計算數(shù)據(jù)庫中有多少行 3,sum()函數(shù)用來計算表達試中的項目和。 例:select age,sum(number) from person where age>20 group by age 6,top關鍵字,限制返回記錄的行數(shù) -----(二)--插入--------- insert 語句 格式如下: insert into 表名>[字段1>,字段2>……] values[常量1,…………] 例:insert into news(id,news) values(1,'新聞') ---(三)--更新------- update語句 格式: update表名> set 列名>=表達式>,列名1>=表達式1>…… where 條件> 例:update news set content=最新消息 where news_id='"news_id"' -----(四)---刪除---------- delete語句 格式:delete from 表名> where 條件 例:delete from news where news_id>20 好了sql語句我們就說這么多吧,下面我們開始創(chuàng)建個數(shù)據(jù)庫,這里我們就用SQL數(shù)據(jù)庫吧 打開" 查詢分析器" '創(chuàng)建個數(shù)據(jù)庫叫news create database news use news create table admin ( id int primany key, admin_name varchar(20) not null, admin_pwd varchar(20) not null, ) '然后我們插入一條數(shù)據(jù) insert into admin values(1,'admin','admin') '然后我們用select * from 查詢一下 select * from admin 就會看到我們的數(shù)據(jù)了 好了,我們打開昨天做的登陸嚴整的代碼,這里我們回顧一下吧,做天我們用了兩個頁來實現(xiàn)的會員登陸的驗證, 這兩個頁分別是(登陸頁login.asp)和(驗證頁checklogin.asp), 現(xiàn)在我們沒有做數(shù)據(jù)庫驗證, (登陸頁login.asp)頁我們不用改動, 下面我們只需改動(驗證頁checklogin.asp),就行了, 這里我們要做個連接數(shù)據(jù)庫的頁面文件,名字就叫conn.asp吧 代碼如下 % dim conn,dbuid,dbpwd,dBName,dbip dbuid="sa" '數(shù)據(jù)庫登陸名 dbpwd="123456" '數(shù)據(jù)庫密碼 dBName="news" '數(shù)據(jù)庫名稱 dbip="(local)" '可為IP '數(shù)據(jù)庫所在地址,如果是本地數(shù)據(jù)庫則為:(local) '--------------------------------------------------------------------------- set conn=Server.CreateObject("adodb.Connection") Conn.Open "PROVIDER=SQLOLEDB.1;Data Source="dbip";Initial Catalog="dBName";Persist Security Info=True;User ID="dbuid";Password="dbpwd";Connect Timeout=30" If Err Then err.Clear set conn=nothing Response.Write "無法連接MSSQL" Response.End End If %> 打開checklogin.asp代碼, 首先在頁面上我們要引用數(shù)據(jù)庫連接文件 !--#include file=conn.asp--> % '-------------------為防止出錯我們定義username和password---------------- dim username dim password '--------用request的form方法來接受login.asp頁面?zhèn)鱽淼闹?,并付值給我們定義的username和password username=request.form("username") password=request.form("password") '---------判斷傳來的值是不是空值 if username="" then '用response的write的方法輸出一個腳本 response.write"script>alert('用戶名不能為空')/script>" response.end end if if password="" then response.write"script>alert('密碼不能為空')/script>" response.end end if '----------判斷用戶名和密碼是不是一樣的,如果一樣的輸出"登陸成功"并把session的標志給這個用戶,否則就輸出"登陸失敗" '------------這里我們就要在數(shù)據(jù)庫里面比較兩個值了 set rs=server.cerateobject("adodb.recordset") sql="select * from admin where admin_name='"username"' and admin_pwd='"password"' " rs.open sql,conn,1,1 '如果用戶不存在 if rs.eof and rs.bof then response.write"SCRIPT language=javascript>alert('用戶名或密碼不正確!');" response.write"javascript:history.go(-1)/SCRIPT>" response.end '負責將用session 產生會話 else session("admin")=rs("admin_name") session("password")=rs("admin_pwd") session("aleave")=rs("aleave") response.redirect "admin.asp" end if '---------最后不要忘記關閉數(shù)據(jù)連接,釋放資源 rs.close set rs=nothing %> 這里我們做好了一個簡單的登陸嚴整,比如我們還可以用session來限制登陸的次數(shù),或者登陸人的權限等等, 如有需要來blog看看哦,都有相應的文章.http://blog.91time.com
td> input name=username type="text" maxlength="20"> /td> /tr> tr> td>font size=2>密nbsp;碼:/font>/td> td> input type="password" name=password maxlength="20"> /td> /tr> tr> td colspan="2" align=center> input type="submit" value=添加>nbsp; input type="reset" value=重置> /td> /tr> /table> /center> /form> /body> /html> 下面我們做adduser.asp,這個頁面就是向數(shù)據(jù)庫中添加值了 !--#include file=conn.asp--> '這里我們添加一個判斷,用來判斷是不是管理員,只有管理員才有權添加用戶 % if isempty(session("admin")) or session("admin")="" then response.redirect"login.asp" end if %> % '-------------------為防止出錯我們定義username和password---------------- dim username dim password '--------用request的form方法來接受add.asp頁面?zhèn)鱽淼闹?,并付值給我們定義的username和password username=request.form("username") password=request.form("password") '---------判斷傳來的值是不是空值 if username="" then '用response的write的方法輸出一個腳本 response.write"script>alert('用戶名不能為空')/script>" response.end end if if password="" then response.write"script>alert('密碼不能為空')/script>" response.end end if '----------判斷用戶是不是已經存在了,如存在就提示,并返回。 set rs=server.cerateobject("adodb.recordset") sql="select * from admin where admin_name='"username"'" rs.open sql,conn,3,3 '如果用戶存在 if not(rs.eof and rs.bof) then response.write"SCRIPT language=javascript>alert('用戶以存在,請重新選擇!');" response.write"javascript:history.go(-1)/SCRIPT>" response.redirect"add.asp" '添加用戶 else rs.addnews rs("admin_name")=username rs("admin_pwd")=password rs.update response.write"SCRIPT language=javascript>alert('添加成功,請返回');" response.write"javascript:history.go(-1)/SCRIPT>" response.redirect"add.asp" end if '---------最后不要忘記關閉數(shù)據(jù)連接,釋放資源 rs.close set rs=nothing %>
好了,現(xiàn)在我來做“更新”“刪除” 這里的重點是要取的要刪除的數(shù)據(jù)的編號,數(shù)據(jù)編號是唯一的不可重復的 首先我們把所有的用戶有取出來 ,并放在一個頁面上 先寫的是更新哦 呵呵 刪除和這個基本一樣就是SQL的語句不同,要注意的是新聞的id是怎么樣取得的!?。?! 這才是本文的重點!?。。。。。。?! ---注意數(shù)據(jù)庫中沒有權限的字段,自己添上就行了----------呵呵-------- ------------------------------------------------admin_admin.asp顯示頁--------------------------------- html> head> title>管理系統(tǒng)/title> body> table width="100%" border="0" cellpadding="0" cellspacing="0"> tr> td> table width="100%" border="0" cellspacing="0" cellpadding="0"> tr> td>nbsp;/td> /tr> /table> table width="90%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000"> tr align="center" bgcolor="#ffaaaa"> td width="15%" height="24"> ID/td> td width="15%">用戶/td> td width="20%">密碼/td> td width="20%">權限/td> td width="15%">修改/td> td width="15%">刪除/td> /tr> % Set rs=Server.CreateObject("ADODB.RecordSet") sql="select * from admin order by id" rs.Open sql,conn,1,1 while not rs.eof if rs("aleave")="super" then aleave="超級管理員" end if if rs("aleave")="check" then aleave="普通管理員" end if %> tr align="center"> td height="22">%=rs("id")%>/td> td>%=rs("admin")%>/td> td>%=rs("password")%>/td> td>%=aleave%>/td> td>a href="admin_AdminModify.asp?id=%=rs("id")%>">修改/a>/td> td>a href="admin_AdminDel.asp?id=%=rs("id")%>">刪除/a>/td> /tr> % rs.movenext wend rs.close set rs=nothing %> /table> /body> /html> ----------------------編號id的接受頁admin_AdminModify.asp-------------------------
% !--#include file=conn.asp--> 'QueryString的方法取得用戶id id=request.QueryString("id") set rs=server.createobject("adodb.recordset") sql="select * from admin where id="id rs.open sql,conn,1,1 if rs.eof then response.write"SCRIPT language=javascript>alert('服務器出錯,請聯(lián)系管理員!');" response.write"javascript:history.go(-1)/SCRIPT>" else admin=rs("admin") password=rs("password") aleave=rs("aleave") table> form method="POST" action="admin_adminSave.asp?id=%=id%>">
tr> td colspan=2 align=center>b>修 改 管 理 員 資 料/b>/td> /tr> tr> td width="30%" height="22" align="right">用戶名:/td> td width="70%"> input type="text" name="admin" value="%=admin%>" size="20">/td> /tr> tr bgcolor="#FFFFFF"> td width="30%" height="22" align="right">密碼:/td> td width="70%"> input type="text" name="password" value="%=password%>" size="20">/td> /tr> tr bgcolor="#FFFFFF"> td width="30%" height="22" align="right">權限:/td> td width="70%" height="22"> select name="aleave" style="font-size:9pt" class="input"> option value=super%if aleave="super" then%> selected%end if%>>超級管理員/option> option value=check%if aleave="check" then%> selected%end if%>>普通管理員/option> /select> /td> /tr> tr align="center" bgcolor="#FFFFFF" height="24"> td height="30" colspan=2> input type="hidden" value="edit" name="act"> input name="cmdok" type="submit" id="cmdok" value=" 修 改 "> nbsp; input name="cmdcance" type="reset" id="cmdcance" value=" 清 除 "> /td> /tr> /form> /table> % end if rs.close set rs=nothing %> %> ----------------------------------------------------------------- 下面我們看看接收頁怎么寫的吧!這頁面就是功能頁了! !--#include file=conn.asp--> % admin=request.form("admin") password=request.form("password") aleave=request.form("aleave") if admin="" or password="" then response.write"SCRIPT language=javascript>alert('管理員名稱和密碼都不能為空!');" response.write"javascript:history.go(-1)/SCRIPT>" Response.End end if set rs=server.CreateObject("ADODB.RecordSet") if request("act")="edit" and request.QueryString("id")>"" then id=request("id") sql="select * from admin where id=" request.QueryString("id") rs.open sql,conn,3,2 if not rs.eof then rs("aleave")=aleave rs("admin")=admin rs("password")=encrypt(password) rs.update end if rs.close elseif request("act")="add" then sql="select * from admin where admin_name='"admin"'" rs.open sql,conn,3,2 if (rs.eof and rs.bof) then rs.addnew rs("aleave")=aleave rs("admin")=admin rs("password")=password rs.update end if rs.close end if set rs=nothing conn.close set conn=nothing response.redirect "admin_admin.asp" %> --------------------------------刪除------------------------------------ 有了上面的基礎寫刪除就更簡單了,我們繼續(xù)哦 是不是很簡單哦 !--#include file="conn.asp" --> % if isempty(session("admin")) or session("admin")="" then response.redirect"login.asp" end if %> % set rs=server.CreateObject("ADODB.RecordSet") rs.open "delete * from admin where id="request.QueryString("id"),conn,1 set rs=nothing response.redirect "admin_admin.asp" %> 最后我們把今天說的東西在總結一下,今天我們做了增,刪,改 這里,增加我們主要是用到了數(shù)據(jù)庫的操作,在寫添加的時候用sql的insert語句直接添加也行,我們用的是rs.addnew的方法 喜歡怎么用就怎么用了,,,呵呵 隨心情了, 在就是修改和刪除,這兩個功能最總要的就是怎么樣鎖定要修改的那條記錄, 這里的方法就多了,可以用QueryString的方法取得用戶id,也可以用"隱藏域的方法取的id" 我們也可以把增,刪,改寫在一個頁面中 這樣顯得整潔一些, 呵呵,這個也就看個人愛好了,剛開始學的話就好用多個頁實現(xiàn)功能, 等時間常了 熟練了在用一個頁面寫 下面大家就來看看我是怎么樣用隱藏域的方法來實現(xiàn)一頁完成這寫功能的和怎么樣用"隱藏域的方法取的id"的???????
-------------------------------一個頁面的增,刪,改------------------------------------ !--#include file="conn.asp"--> % info=trim(request("info")) Set rs=Server.CreateObject("ADODB.Recordset") select case info case "add" sql="SELECT * FROM link" rs.Open sql,conn,1,3 rs.Addnew rs("name")=trim(request("webname")) rs("url")=trim(request("url")) rs.Update Response.Redirect"mody.asp" case "mod" sql="SELECT * FROM link where id="trim(request("id")) rs.Open sql,conn,1,3 rs("name")=trim(request("webname")) rs("url")=trim(request("url")) rs.Update Response.Redirect"mody.asp" case "del" sql="delete * FROM link where id="trim(request("id")) rs.Open sql,conn,1,3 Response.Redirect"mody.asp" case else Set rs=Server.CreateObject("ADODB.Recordset") sql="SELECT * FROM link order by id asc" rs.Open sql,conn,1,3 %> table border="1" width="500" align=center cellspacing="0"> tr> td width="33%" align="center">網站名稱/td> td width="33%" align="center">網站地址/td> td width="34%" align="center">操作/td>
------------------------------------------------------------------------------------------------------------------- 第三天 上一節(jié)我們講解了ASP中應用最廣泛的操作,其實那就是個網站的后臺的管理中(用戶的管理), 新聞管理,投票管理也都是這樣做的,不用的就是他們的功能更復雜,數(shù)據(jù)更多, 其中留言板就是數(shù)據(jù)的存儲和讀取的過程,不過是我們把這個過程復雜化了, 第一天,我們講解了數(shù)據(jù)和值的傳遞過程,用form>來將值傳遞到下一個頁面中,并用Request.form來接受,用response.write的方法來輸出 ,這里主要是讓大家理解值的傳遞過程,當然我們也可以在一個頁面中傳遞。 第二天,我們講解了SQL的常用的語句,和在ASP中怎么樣執(zhí)行SQL語句, 今天我們主要講一下:SESSION和cookies,回顧以下response,request。 首先,登陸模塊的程序都會用到檢測是不是用戶已經登陸這個步驟。這就用到了SESSION和cookies, 我們還是用代碼來說明(在上面的程序中我們已經用到了): --------------------------------------------------- 1>這是session的寫法: % '如果用戶存在 session("aleave")=rs("aleave") %> ------------------------------------------------ 2>這是cookies的寫法: % response.cookies("adminok")=true %> 這樣我們就能在我們需要的地方進行判斷了 代碼如下: % if session("aleave")="" then response.redirect "adminlogin.asp" response.end end if %> 這里是cookies的驗證判斷: % if request.cookies("adminok")="" then response.redirect"login.asp" end if %> 這樣沒有session和cookies標志的用戶是無法打開這個頁面。 最后我們說一下response.redirect,它是重定向的意思, 后面的"login.asp"就是轉向的文件。這樣沒有登陸的管理員是無法看到后面的內容的。 下面總結一下 response常用的就是response.write () , response.redirect() 分別是寫字符串和轉向的作用 request基本就是request.form(),request.querystring() 分別是接受post,get方法傳來的信息 這里我給大家一個常用的(Access)數(shù)據(jù)庫連接代碼(Sql的在上面的例子中有哦,我就不寫了): 以后大家只要改換“數(shù)據(jù)庫”就可以直接用了, ---------- % '數(shù)據(jù)庫連接程序conn.asp strSQL="DBQ="+server.mappath("db/news.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") conn.open strSQL %> 為了保證數(shù)據(jù)庫的安全呢,我們可以把數(shù)據(jù)庫的擴展名換成.asp的,也可以是asa, 最好把數(shù)據(jù)庫的名字弄的復雜點, 在就是數(shù)據(jù)庫的字段也要弄的復雜點哦,要不然人家用軟件猜解也是很容易的哦 并在頁面中過濾掉非法的字符,這樣能安全點(網站有很多的防SQL注入的代碼哦,也有很多的注入工具) 還是自己把網站弄的安全點吧, 并且用例子來演示了怎么樣實現(xiàn)整個功能,希望大家能多看看代碼,多動手來打打代碼,還有就是盡量用“記事本”編寫代碼, 不要上來就用一些開發(fā)工具和代碼提示的軟件,這樣不利于我們對代碼的理解和記憶。 今天就到這里,多看看我們第二天講的東西那是asp數(shù)據(jù)管理最重要的地方 明天我們講解asp中的分頁 呵呵 大家明天見哦 晚安!
--------------------------------------------------------------------------------------------------- 第四天 利用ASP分頁顯示實例 這里我們要說的就是ASP中比較復雜的分頁技術了,代碼有點多,但是不是很復雜, 大家多看幾便就能理解了, 首先我們先理解一下分頁的原理: 在前幾天我們了解了Recordset對象的以上屬性和方法后, 我們來考慮一下,如何運用 它們來達到我們分頁顯示的目的。 我們可以為PageSize屬性設置一個值,從而指定從記錄組中取出的構成一個頁的行數(shù); 然后通過RecordCount屬性來確定記錄的總數(shù); 再用記錄總數(shù)除以PageSize就可得到所顯示的頁面總數(shù); 最后通過AbsolutePage屬性就能完成對指定頁的訪問。 好象很并不復雜呀,下面讓我們來看看程序該如何實現(xiàn)呢? 代碼主要用到Connection、RecordSet這兩個對象,程序中的數(shù)據(jù)庫為Access庫, 采用OLEDB方式連接庫。 % Set conn = Server.CreateObject("ADODB.Connection") strcon="provider=microsoft.jet.oledb.4.0;data source=" _ server.mappath("mdb.mdb") conn.Open strcon Set rs = Server.CreateObject ("ADODB.Recordset") sql="select * from table order by id desc" rs.Open sql, conn, 1 page=1 ' 設置變量PAGE=1 rs.PageSize = 5 '每頁顯示記錄數(shù) if Not IsEmpty(Request("Page")) then '如果Page已經初始化... Page = CInt(Request("Page")) '接收Page并化為數(shù)字型賦給Page變量 if Page > rs.PageCount then '如果接收的頁數(shù)大于總頁數(shù) rs.AbsolutePage = rs.PageCount '設置當前顯示頁等于最后頁 elseif Page = 0 then '如果page小于等于0 Page = 1 '設置PAGE等于第一頁 else rs.AbsolutePage = Page '如果大于零,顯示當前頁等于接收的頁數(shù) end if End if Page = rs.AbsolutePage %> % For i = 1 to rs.PageSize if rs.EOF then Exit For end if '利用for next 循環(huán)依次讀出記錄 %> '一個頁中顯示多少條數(shù)據(jù)Rs.pagesize=5, 把5改為你想顯示的記錄數(shù).比如說 改為10.那么每頁就是顯示10頁.還需要修改的是select語句.就是你要檢索的數(shù)據(jù)庫了. 也就是說放到任何一個系統(tǒng)中上面的代碼只需很小的改動都可以直接拿過來用. 然后:就是要循環(huán)讀出記錄的顯示內容了..............比如
%if request("page")>1 then%>a Href="test.asp?Page=% = 1%>">首頁/a> a Href="test.asp?Page=% =request("page") -1 %>">上一 頁/a>%end if %>%if request("page")>rs.pagecount then %>a Href="test.asp?Page=% =request("page") + 1%>">下一頁/a> a Href="test.asp?Page=% = rs.PageCount%>">尾頁/a> % end if %> 上面的代碼只管復制粘貼.只需把"page.asp"改成你自己的文件名就可以了。 隨便把這段代碼放在什么地方?就是你想讓它出現(xiàn)下一頁下一頁鏈接的地方吧. 最后.關閉記錄集釋放資源: % rs.close Set rs = Nothing conn.close set conn=nothing %> -------------------------------------------------------------------------------- 要克服最后一頁中的"下一頁"仍處于連接狀態(tài)有一個辦法.就是把程序中稍加改動如下: %if request("page")>rs.pagecount then %> a Href="test.asp?Page=% =request("page") + 1%>">下一頁/a> % else response.write"下一頁"%> 就是此時把"下一頁"設置成非連接狀態(tài)
For i = 1 to rs.PageSize if rs.EOF then Exit For end if '利用for next 循環(huán)依次讀出記錄 使用的是Do while。 分頁代碼的示例::: ----------------------------------------------------------------------------------- % db="數(shù)據(jù)地址.mdb" Set conn = Server.CreateObject("ADODB.Connection") conns="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath(""db"") conn.Open conns Set rs = Server.CreateObject("ADODB.Recordset") sql="Select * from 表名 order by id desc" rs.open sql,conn,1,1 if rs.eof then response.write("沒有記錄") else Page=Int(Abs(Request("page"))) IF not IsNumeric(Request("page")) Or IsEmpty(Request("page")) Then page=1 rs.pagesize = 10 '每頁顯示記錄數(shù) total = rs.RecordCount mp = rs.pagesize rs.absolutepage = page i=0:k=0 do while not rs.eof and mp>0:k=k+1 response.write("顯示第"rs("id")"條記錄") i=i+1 mp=mp-1 rs.movenext loop if page>rs.pagecount then Response.redirect("index.asp?page="rs.pagecount) if page>1 then response.Write("a href='index.asp?page=1' title='首頁'>首頁/a>") response.Write(" a href='index.asp?page="page-1"' title='上一頁'>上一頁/a> ") end if response.Write("第"page"/"rs.pagecount"頁 共"total"條記錄 本頁顯示第"(page-1)*rs.pagesize+1"條到第"(page-1) *rs.pagesize+k"條 ") if pagers.pagecount then response.Write("a href='index.asp?page="page+1"' title='下一頁'>下一頁/a>") response.Write(" a href='index.asp?page="rs.pagecount"' title='尾頁'>尾頁/a>") end if end if rs.close set rs=nothing conn.close set conn=nothing %> 這樣一個分頁的程序就算是做好了,這個程序非常簡單而且便于理解,是個學習的好例子。 大家在做一個程序前應該多想想怎么樣實現(xiàn)這個功能,然后在動手去寫這個代碼, 這樣才能做到胸有成竹。 呵呵,有時候學點東西真的很不爽哦, 又快到新的一天了 明天我們粗率的講解一下ASP的組件,這樣asp的精華我們也就全部講完了, 以后的學習過程就要靠我們自己努力了, 最好的學習方法就是多看示例,呵呵 美好的明天一定會來的~~~~~~~~~~~~~~~~~~~blog.91time.com