程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> ASP進階教程Ⅷ:數據庫版本的留言簿

ASP進階教程Ⅷ:數據庫版本的留言簿

編輯:ASP入門教程
在前面我們介紹了文件版本的留言簿,現在我們不妨來設想一下:如果留言文件裡面的留言很多,而你又急於想尋找其中的某條留言時,這時打開txt留言文件,對著一段段的留言記錄,你敢擔保你不會當場暈倒嗎?而且文件留言簿最令人討厭還遠不只是這個原因,更氣人的是:譬如你已經找到了你要找的留言,而且是非要將其刪除不可(當然是因為那段留言竟毫不留情地往你臉上抹黑的緣由啦),那麼此時其余想對你大發贊賞之言的朋友,就會因為你正在做留言刪除的操作而不能留言了。看,這有多可惜!不過,你也無須歎氣,雖然留言文件不能供多人共用,但是改成數據庫來管理留言記錄,當你在做刪除留言的期間,訪問者的留言還是可以加進來的。既然數據庫留言簿能對你的系統如此照顧入微,我們現在就事不宜遲,立即來揭開她的廬山真面目。

  至於如何建立自已的數據庫版本的留言簿,我們還是通過分步驟的方法來說明吧。要編寫一個數據庫版本的留言簿,我們大致可以從以下三個步驟來完成。

步驟一:使用Access先建立用來存放留言的數據表。(當然,如果你想使你的數據庫能很好地工作在高需求、高質量的Web應用程序的客戶-服務器數據庫,而且無論是在性能還是在可靠性上都能經受得起嚴格的考驗,那麼你最好是用服務器等級的數據庫,如:SQL Server、Oracle等。對於非服務器等級的數據庫,我推薦使用Access中文版來建立。凡是用Access來建立的數據表,都是以.mdb為後綴名,如:book0.mdb。)

  Access的界面非常友好,操作也非常簡便,相信聰明的讀者們,即使以往從未用過Access的,只要動手試試,也定能很快對其驽駕自如,所以我在這裡也就不再贅述(當然也不排除有那麼幾分懶惰的成份)。

步驟二:設計一個留言表單的網頁也同樣是不可或缺的。(如:guestbook0.htm)。  
步驟三:又到編寫處理留言的ASP程序了。(我們可以將下述代碼COPY下來,然後另存為manage0a.ASP文件。)
< !--#include file="adovbs.inc" -->
'調用adovbs.inc文件,所謂inc 文件顧名思義是include file的意思,adovbs.inc是IIS/PWS所提供的文件,存放著ADO相關常數的定義,使用inc文件可以使我們的程序,增加可讀性,更易於開發和維護。
< % Function SqlStr( data )
SqlStr = "'" & Replace( data, "'", "''" ) & "'"
End Function
'這裡用了SqlStr函數,其作用是將數據中的一個單引號改成兩個單引號,並且在前後加上單引號。之所以要用該函數是由於上網者輸入的數據必須以用單引號括起來的形式'輸入的數據'與Insert Into命令組合在一起,但是如果用戶輸入的數據含有單引號,則'輸入的數據'將會產生錯誤,因此輸入的數據必須經過SqlStr的切換(將單引號切換成兩個單引號)才是正確的。
Name = Request("Name")
Tel=Request("Tel")
Email = Request("Email")
Subject = Request("Subject")
Memo = Request("Memo")
'從留言表單取得數據
If Name = "" Or Tel="" Or Email = "" Or Subject = "" Or Memo = ""  Then Response.Write "輸入框不能為空白!"
Response.End
End If
'檢查表單的各輸入框是否有信息輸入,若留有空輸入框沒填則顯示說明信息:"輸入框不能為空白!" 並停止執行下面的程序。
Set conn = Server.CreateObject("ADODB.Connection")
'用Server.CreateObject取得對象ADODB.Connection。因為在ASP中,如果要訪問數據必須首先創建與數據庫的鏈接,因此建立連接是存取Web數據庫不可缺少的步驟,執行以上語句之後,conn便是一個Connection對象。
DBPath = Server.MapPath("book0.mdb")
'通過調用服務器對象的MapPath方法來獲取book0.mdb的完整路徑。
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
'因為我們想打開的是Access(.mdb)數據庫,所以我們要透過Access的ODBC驅動程序{Microsoft Access Driver (*.mdb)}來存取數據庫,dbp參數則是用來指定想打開的數據庫文件,因為它必須是完整路徑名稱,所以我們上一語句用了Server.MapPath 函數 。
Name = Left( Name, 40 )
Tel = Left(Tel,10)
Email = Left( Email, 80 )
Subject = Left( Subject, 127 )
'截短輸入到各字段裡數據的長度,以避免因輸入到某一字段中的數據超長而引發的錯誤,當然假如我們將數據庫book0.mdb中的各字段的數據類型都有設為“備注”,我們則再無需擔心上網者所輸入的數據有多長。
sql = "Insert Into GuestBook (姓名, 電話, Email, 主題, 留言) Values( "
sql = sql & SqlStr(Name) & ", "
sql = sql & SqlStr(Tel) & ", "
sql = sql & SqlStr(Email) & ", "
sql = sql & SqlStr(Subject) & ", "
sql = sql & SqlStr(Memo) & ")"
'在"guestbook"數據表中增加一個數據記錄,然後把其中的各字段 (姓名, 電話, Email, 主題, 留言)分別設置成從留言表單上取下的對應的數據。
conn.Execute sql
'執行sql指令。
%>  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved