現(xiàn)在相對簡單多了,如果有多個操作頁面我們只要導入連接文件就可以了,不過還是不夠簡潔,哪里不簡潔? 一直在創(chuàng)建server,一直在寫close,這樣很容易出錯,并且看起來與內容無關的太多。
那我再改進下: 把conn.asp文件改成: <% Dim Conn Dim Rs Sub CloseDatabase Conn.close Set Conn = Nothing End Sub Sub OpenDatabase Dim StrServer,StrUid,StrSaPwd,StrDbName StrServer="192.168.1.1" '數(shù)據(jù)庫服務器名 StrUid="sa" '您的登錄帳號 StrSaPwd="" '您的登錄密碼 StrDbName="cnbruce.mdb" '您的數(shù)據(jù)庫名稱 Set Conn = Server.CreateObject("ADODB.Connection") '用于連接ACCESS Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(StrDbName) '用于連接MSSQL 'Conn.ConnectionString = "Driver={sql server};driver={SQL server};server="&StrServer&";uid="&StrUid&";pwd="&StrSaPwd&";database= "&StrDbName set rs=server.CreateObject("ADODB.RecordSet") conn.open if Err Then err.Clear Set Conn = Nothing GBL_CHK_TempStr = GBL_CHK_TempStr & "數(shù)據(jù)庫連接錯誤!" Response.Write GBL_CHK_TempStr Response.End End If End Sub %>
現(xiàn)在我們的showit.asp可以這樣寫:
showit.asp <!--#include file="conn.asp" --> <% sql = "Select * from cnarticle" opendatabase rs.Open sql,conn,1,1 If not Rs.eof then Do Until rs.EOF response.write("文章標題是:"& rs("cn_title")) response.write("<br>文章作者是:"& rs("cn_author")) response.write("<br>文章加入時間是:"& rs("cn_time")) response.write("<br>文章內容是:"& rs("cn_content")) response.write("<hr>") rs.MoveNext Loop else response.write ("暫時還沒有文章") end if Closedatabase %>
嗯,我們又少寫了一些東西,這樣是最簡單的嗎?當然不是!還可以更簡單。 使用GetRows把查詢出來的數(shù)據(jù)傳給一個變量,使用ubound方法取得數(shù)據(jù)記錄條數(shù)。 不明白?沒關系,讓我們繼續(xù)往下看:
再建個文件:sql.asp
sql.asp <% Class DataTable public Function SelectData(sql) If sql<>"" then opendatabase Rs.open sql,conn,1,1 If not Rs.eof then Thedata=Rs.GetRows(-1) Closedatabase Else Closedatabase End If End If SelectData=Thedata End Function End Class %>
嗯,復制它就可以了,現(xiàn)在我們的showit.asp可以簡單地這樣寫:
showit.asp <!--#include file="conn.asp" --> <!--#include file="sql.asp" --> <% sql = "Select * from cnarticle" set loadData=new DataTable Thedata=loadData.SelectData(sql) If isarray(Thedata) then Num=ubound(Thedata,2) for i=0 to Num response.write("文章標題是:"& Thedata(1,i)) response.write("<br>文章作者是:"& Thedata(2,i)) response.write("<br>文章加入時間是:"& Thedata(3,i)) response.write("<br>文章內容是:"& Thedata(4,i)) response.write("<hr>") next else response.write("暫時還沒有文章") End If %>
呵呵,這樣,我們只要用兩句語句就完成了數(shù)據(jù)的讀取。同樣的,通過在sql.asp中加入:
<% public Function SelectDataNum(sql) If sql<>"" then Opendatabase Rs.open sql,conn,1,1 If not Rs.eof then Thedata=Rs.GetRows(-1) Closedatabase Num=ubound(Thedata,2) Else Closedatabase End If End If SelectDataNum=Num End Function %>
我們就可以使用:
<% sql = "Select * from cnarticle" set loadData=new DataTable Num=loadData.SelectDataNum(sql) %>
來取得記錄條數(shù),可以用于分頁或者用戶名是否重復的判斷。
出處:藍色理想
責任編輯:moby
上一頁 asp快速開發(fā)方法之數(shù)據(jù)操作 [1] 下一頁 asp快速開發(fā)方法之數(shù)據(jù)操作 [3]
◎進入論壇網絡編程版塊參加討論
|