ASP掃盲學習班第六課 — 添加新儲存的資料

來源:互聯網
上載者:User
上一節課中我們回顧了一下過去所講的內容,同時著重說了一下IIS調試台的使用,如果還有不明白的朋友請看一下上節課的動畫,以確保調試台可以正常工作,因為今後的學習全部需要在調試台下進行,從這節課開始我們講述資料存放區。 

 

所謂的資料存放區就是將前台中使用者所填寫的資料儲存到資料庫中,儲存到資料庫的目的是為了我們今後對資料進行查詢檢索之類的操作,因此資料的儲存我們可以這樣來理解,我們用asp寫程式實際上就是圍繞資料來做,以資料的儲存修改查詢刪除等為核心,針對此核心我們用一種資料庫能夠識別的指令碼來操作它,從而最終達到我們的目的。閑話少說,這節課我們需要講述的內容非常多,我們先來看代碼。 

 

讓我們開啟以前建立的doing.asp然後輸入以下代碼:

該篇文章附帶的 HTML 程式碼片段如下:<%
set conn=server.createobject("ADODB.CONNECTION")
connstr="DBQ="+server.mappath("db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
conn.open connstr 

 

'擷取表單資料
Title = Request.Form("Title")
Message = Request.Form("Message") 

 

Set Rs = Server.CreateObject("Adodb.Recordset")
Rs.Open "Select * From Guestbook Where 1=2",Conn,1,3
Rs.Addnew
Rs("title")=title
Rs("message")=message
Rs.update
Rs.Close
Set Rs = Nothing 

 

Response.Write ("資料已經被成功的寫入資料庫<br>")
Response.Write ("<a href='index.asp'>點擊返回</a>")
Set conn = Nothing
%>

輸入之後儲存,然後開啟瀏覽器,輸入http://127.0.0.1,留一次言,看一些能否提示“資料已經被成功的寫入資料庫”,如果這樣提示了,那說明你的程式已經沒有問題了,再開啟資料庫,然後看一下我們設計的資料表中是否已經有了剛才您所留的言,如果有,那麼一切正常。 

 

接下來我們講述代碼,
connstr="DBQ="+server.mappath("db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
這一段我們暫時不詳細講解,大家只需要知道db.mdb就是我們的資料庫名,並且這一段代碼是用來與資料庫建立串連的就行了,以後我會做詳細的講解
我舉一個例子來說明一下,就如同我們相隔很遠需要打電話通訊,那麼前提是我們有一部電話機和一根互連的電話線.那麼這一段我們可以理解為asp和資料庫通訊的一個中介。 

 

'擷取表單資料
Title = Request.Form("Title")
Message = Request.Form("Message")
這一段我們已經在第四課做了詳細的講解,如果不理解,那麼請你去看看第四課的內容。 

 

Set Rs = Server.CreateObject("Adodb.Recordset")
這一句是用來建立對象,大家一定要記住,在asp中建立對象的方法就是用set
文法是
set 對象名稱= Server.CreateObject("對象的名稱")
Server:含義是伺服器
Create:含義是建立,建立
Object:含義是對象,目標
Server.CreateObject合起來理解就是伺服器建立對象
在剛才這個簡短的代碼中我們已經看到建立了兩個對象,他們分別是:
Set Rs = Server.CreateObject("Adodb.Recordset")
set conn=server.createobject("ADODB.CONNECTION")
大家看一下建立的這兩個對象名稱不同,對象名稱不同,其餘的都相同,或許你會問大小寫也不同,asp忽略大小寫
注意:如果要操作資料庫,那麼就必須要建立對象,對象用完之後記得要使用Set 對象名稱 = Nothing清理
這裡我舉例來說明以下何為對象
“我的電腦運行速度很快”
在這一句話中“我的電腦”我們把它理解為對象,而“運行速度很快”則是對象的表現形式,如果這句話中我去掉“我的電腦”這個對象,而單純說“運行速度很快”,那麼大家肯定會摸不著頭腦,不知道什麼運行速度很快。 

 

Rs.Open "Select * From Guestbook Where 1=2",Conn,1,3
我們看一下這句,在這句中Rs就是對象(因為我們剛才用Set Rs = Server.CreateObject("Adodb.Recordset")剛剛把它建立了),好現在對象有了,那麼我們再看一下這個對象要表達什麼
open:含義是開啟
現在我們已經知道對象的基本意圖了,他的意圖是“對象要開啟”,而他要開啟什麼呢?
select:含義是選擇
*:他是一個萬用字元號,意思是所有的
from:含義是從
Guestbook:這是我們資料庫中所建立的表的名字,含義是留言本
Where:含義是哪兒?但是在電腦英語中的asp編程中我們需要把它理解為條件
Conn是我們建立的對象
,1,3這裡我們暫時不詳細解說,大家僅僅需要記住一點,那就是如果我們需要對資料庫修改添加或者刪除的時候需要用,1,3而如果要對資料不作變更而是僅僅查詢,那麼我們需要用,1,1 

 

Rs.Open "Select * From Guestbook Where 1=2",Conn,1,3
好,那麼我們連貫起來理解這一句的含義“對象要開啟(從資料庫中的Guestbook表中選取資料,條件必須要滿足1=2的資料),並且允許對資料作改動”
那麼讓我們想一下,1=2,這可能嗎?根本不可能,既然條件是不存在的,那麼Select * From Guestbook(從資料庫中選擇所有資料,必須要滿足一等於二這個條件的記錄),沒有一行能夠滿足的了這樣就得不到任何記錄,
既然得不到任何資料,那麼我們就往裡插入,插入的文法是
對象.Addnew
Addnew:含義是建立,當碰到這一句我們就要知道現在資料庫準備要往裡建立資料,但是還沒有真正的寫進去,這裡我們要考慮一點,那就是建立的時候如何讓資料知道我們前台中使用者的留言標題(title)能夠正確地寫到資料庫中儲存留言標題的title列中呢?
因此我們就需要描述一下,讓資料庫清楚這件事情
Rs("title")=title
我們看有一下這個Rs("title"),rs我們都知道了,他是對象Rs("title")則表示對象裡的title,那麼對象是指我們的資料庫,這一句的含義就是資料庫中的title列,而後邊的=title,這是付值,把等號右邊得值賦給等號左邊,等號的右邊是一個title,這個title是一個變數,因為他沒有加單引號或者雙引號,所以它就是變數,而如果這一句這樣來寫
Rs("title")="title"
那麼其意義就不同了,這一句的含義就變成了讓資料庫中的title列的值等於title這個字串,這樣一來不管前台使用者如何提交留言的標題內容,最終被寫入資料庫的留言標題將永遠都是title這幾個字元
現在我們重新看一下Rs("title")=title,這裡是讓資料庫的title列的值等於變數title的值,而title的值等於Request.Form("Title"),意思是從前台擷取form表單中表單項目名稱是title的值(這一點,第四節課我們都講過了,如果不明白,那麼請回頭看一下)
Rs("message")=message
這一句和上邊一樣,不再贅述 

 

Rs.update剛才我已經說過了,當我們碰到rs.addnew這一句我們就要知道現在資料庫準備要往裡建立資料,而現在大家要知道,當我們碰到Rs.update則是程式正在執行往資料庫中寫資料這一過程
Rs.Addnew 做好寫的準備
Rs("title")=title 告訴資料庫怎麼寫
Rs("message")=message 告訴資料庫怎麼寫
Rs.update 往裡寫 

 

Rs.Close 關閉對象,大家記得如果對象不再用了,那麼你就要及時地關閉它
Set Rs = Nothing 清除對象,清除對象和用set建立對象是對應的,
由此可知,對象使用要首先建立,然後才能用,用完之後要關閉,關閉之後要清理,這樣的程式才是效率最高的程式。
如果你不關閉,不清理那麼我們建立對象時所使用的伺服器內容將會長期不能夠被清理,除非伺服器重新開機,不能被清理就會導致我們所寫的程式運行效率低,速度慢。 

 

Response.Write ("資料已經被成功的寫入資料庫<br>")作用是把這句話“資料已經被成功的寫入資料庫”輸出到顯示器,同時執行換行操作
Response.Write ("<a href='index.asp'>點擊返回</a>")作用同上
Set conn = Nothing 清理對象 

 

好了,這節課總算講完了,我的講述羅羅嗦嗦一大套,大家不要死記硬背,關鍵是理解,程式員不需要死記硬背,如果你想通過死記硬背的方式學好程式,那麼我建議你現在就放棄,不要耽誤時間。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.