主頁 > 知識(shí)庫 > ASP編程入門進(jìn)階(二十):ADO組件之顯示數(shù)據(jù)記錄

ASP編程入門進(jìn)階(二十):ADO組件之顯示數(shù)據(jù)記錄

熱門標(biāo)簽:沈陽電話機(jī)器人公司 長春公司外呼系統(tǒng)中心 鄭州智能外呼電銷機(jī)器人廠家 鄢陵學(xué)校如何做地圖標(biāo)注 成都ai外呼系統(tǒng)線路 沈陽三五防封電銷卡 廣東語音外呼系統(tǒng)公司 虛擬電話外呼系統(tǒng) 云南便宜外呼系統(tǒng)平臺(tái)
學(xué)習(xí)ASP的萬里長征就快到終點(diǎn)了:等把ASP的ADO組件搞定。當(dāng)然這也是最重要的一步,幾乎前面所有的學(xué)習(xí)都是為了這個(gè)最終的目的。OK,下面就來詳細(xì)系統(tǒng)地來一一掌握,步步為營,各個(gè)擊破。

一,擁有數(shù)據(jù)庫

可以這么說:靜態(tài)頁面和動(dòng)態(tài)頁面最大的區(qū)別就是采用了數(shù)據(jù)庫。有關(guān)一個(gè)WEB程序采用數(shù)據(jù)庫和不采用的優(yōu)越性比較,就不去細(xì)細(xì)分析了,主要精力還是放在如何使用數(shù)據(jù)庫,如何熟練運(yùn)用數(shù)據(jù)庫,如何更靈活地運(yùn)用數(shù)據(jù)庫等等……其中運(yùn)用操作數(shù)據(jù)庫主要是對(duì)數(shù)據(jù)庫內(nèi)容進(jìn)行:顯示、插入、修改、更新、查詢和刪除。

這些方法當(dāng)然也不是一口就能吃出來的,要慢慢感受咀嚼、理解消化。當(dāng)然首先很重要的便是先擁有數(shù)據(jù)庫了。否則,一切都是空談,巧媳婦難以無米之炊嘛。

一般而言,我們所說的數(shù)據(jù)庫其實(shí)就是一個(gè)數(shù)據(jù)庫文件,該文件是由一些數(shù)據(jù)庫管理系統(tǒng)(DBMS)建立生成的。目前一般的DBMS也就是常用常聽說的ACCESS,SQLSERVER,MYSQL,ORACLE。當(dāng)然一般個(gè)人站點(diǎn),小型企業(yè)采用ACCESS完全足夠;稍微大些的就采用同樣是Microsoft公司的SQL SERVER或者是MYSQL,值得注意的是MYSQL一般是和另外一種網(wǎng)絡(luò)編程語言PHP完美結(jié)合的。當(dāng)然更大型的就采用ORACLE了。呵呵,曾經(jīng)在學(xué)習(xí)PB時(shí)還運(yùn)用到SYBASE數(shù)據(jù)庫,UNIX系統(tǒng)的Informix數(shù)據(jù)庫……DBMS簡直是多如牛毛-_-!

話說過來,目前我們就直接使用ACCESS了:1,使用簡單;2,入門掌握容易;3,實(shí)在沒有比這個(gè)更適合初學(xué)的了。

一切還得從實(shí)際操作開始。

1,打開ACCESS數(shù)據(jù)庫,選擇新建數(shù)據(jù)庫,將其命名為cnbruce.mdb,并保存到一專門文件夾database中



2,在新建的數(shù)據(jù)庫容器中雙擊“使用設(shè)計(jì)器創(chuàng)建表”,彈出的表1窗口中字段名稱輸入“cn_id”,數(shù)據(jù)類型選擇“自動(dòng)編號(hào)”,并選擇上方工具欄中的鑰匙按鈕,將該字段設(shè)為主鍵。

繼續(xù)輸入字段“cn_title”,數(shù)據(jù)類型選擇“文本”;NEXT輸入字段“cn_content”,數(shù)據(jù)類型選擇“備注”;
PS:備注和一般類型文本最大的區(qū)別就是備注允許插入的字段值相對(duì)要多些,這在插入一些較長文章的時(shí)候尤其重要。

仍然輸入字段“cn_author”,數(shù)據(jù)類型選擇“文本”;并且切換到下面“常規(guī)”中的“允許空字符串”選擇“是”。
PS:這表面允許cn_author字段的值可以是空的,這在當(dāng)提交表單,某些信息不填寫但要正確插入數(shù)據(jù)庫時(shí),顯得很重要。

最后輸入字段“cn_time”,數(shù)據(jù)類型選擇“日期/時(shí)間”,繼續(xù)切換到“常規(guī)”中的“默認(rèn)值”輸入“now()”函數(shù)

末了,將“表1”另存為“cnarticle”



3,雙擊打開cnartile表,填寫第一行:“cn_title”輸入“test”,“cn_content”輸入“this is a test”,“cn_author”輸入“cnbruce”,時(shí)間已經(jīng)自動(dòng)添加。完成!關(guān)閉表,關(guān)閉數(shù)據(jù)庫。



二,建立數(shù)據(jù)庫連接

OK,數(shù)據(jù)庫已經(jīng)建立完畢,并且已經(jīng)填寫了一行信息內(nèi)容。那么現(xiàn)在需要的就是同過ASP將該行信息顯示出來。

要想顯示,首先還是需要ASP與該數(shù)據(jù)庫文件建立連接,具體怎么建立?往下看。

1,conn.asp:主要起的是連接并打開某數(shù)據(jù)庫文件的功能。該文件建議單獨(dú)存在,并且位置是和存放數(shù)據(jù)庫的文件夾database處與同一物理層次。


%
db_path = "database/cnbruce.mdb"
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Server.MapPath(db_path)
conn.Open connstr
%>



db_path = "database/cnbruce.mdb",不用說,就是將數(shù)據(jù)庫的相對(duì)路徑賦到一個(gè)變量上,以方便下面繼續(xù)調(diào)用。

Set conn= Server.CreateObject("ADODB.Connection"),和其它建立組件一樣,建立了一個(gè)ADO連接,并用一對(duì)象conn來接受。

connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Server.MapPath(db_path),很顯然就是連接字符串了,其包括打開數(shù)據(jù)庫的驅(qū)動(dòng)方法OLEDB,和打開和哪個(gè)數(shù)據(jù)庫的連接(即數(shù)據(jù)庫的路徑)。

需要再次提醒的是:無論是FSO對(duì)文件、文件夾的操作還是ADO對(duì)數(shù)據(jù)庫的操作,對(duì)被操作文件的取得都是獲得的絕對(duì)的物理地址,一般情況之下,采用Server.MapPath方法相對(duì)較好。

conn.Open connstr最后對(duì)象conn通過連接字符串connstr打開了數(shù)據(jù)庫的連接。

三,顯示數(shù)據(jù)庫內(nèi)容

建立了數(shù)據(jù)庫,建立了和數(shù)據(jù)庫的連接,下面水到渠成地就是將數(shù)據(jù)庫中的內(nèi)容通過ASP顯示出來。

2,showit.asp


!--#include file="conn.asp" -->

%
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle"
rs.Open sql,conn,1,1
%>

%
if rs.EOF and rs.BOF then
response.write ("暫時(shí)還沒有文章")
else
Do Until rs.EOF
response.write("文章標(biāo)題是:" rs("cn_title"))
response.write("br>文章作者是:" rs("cn_author"))
response.write("br>文章加入時(shí)間是:" rs("cn_time"))
response.write("br>文章內(nèi)容是:" rs("cn_content"))
response.write("hr>")
rs.MoveNext
Loop
end if
%>

%
rs.close
Set rs = Nothing
conn.close
set conn=Nothing
%>



簡單調(diào)試本頁,不出任何意外,相信一定能將數(shù)據(jù)庫中的信息顯示出來了。(PS:我的數(shù)據(jù)庫中輸寫了兩行)



下面就來具體一個(gè)一個(gè)解釋來理解沒行的含義:
1,!--#include file="conn.asp" --> 沒有任何爭議,主要是調(diào)用conn.asp的所起的功效,這在解釋conn.asp文件的時(shí)候已經(jīng)明白。

2,Set rs = Server.CreateObject ("ADODB.Recordset") ADO組件除了Connection連接以外,還有Recordset綁定記錄集(相信用過DW做ASP的人現(xiàn)在開始有些重回故里的感覺了)當(dāng)然 rs 可以形象地想象成數(shù)據(jù)庫表中的某一行。

3,sql = "Select * from cnarticle" 標(biāo)準(zhǔn)的SQL結(jié)構(gòu)化查詢語言。很簡單:建立了數(shù)據(jù)庫連接,也綁定了記錄集,那具體需要哪些信息呢?也就是要篩選一些記錄集合了,不過當(dāng)前采用的是無任何條件,即可以提取所有。

4,rs.Open sql,conn,1,1 真正地打開通向數(shù)據(jù)庫中記錄集的大門,具體有關(guān)后面的參數(shù)可以從如下網(wǎng)址中獲得。 http://www.cnbruce.com/blog/showlog.asp?cat_id=26log_id=283

5,if rs.EOF and rs.BOF then 該語句里面涉及到了rs.EOF 和 rs.BOF 以及兩者的邏輯運(yùn)算 and 。rs.EOF 表示到達(dá)數(shù)據(jù)庫表中的最后一行,rs.BOF 表示到達(dá)數(shù)據(jù)庫表中的第一行。整個(gè)語句可以理解為,如果當(dāng)前數(shù)據(jù)庫中的最后一行就是數(shù)據(jù)庫表中第一行,那么可以肯定:當(dāng)前數(shù)據(jù)庫表中沒有任何數(shù)據(jù)。

6,
Do Until rs.EOF
...
rs.MoveNext
Loop


主要就是一個(gè)DO LOOP 循環(huán)語句了,其中循環(huán)的結(jié)束條件為:直到rs.EOF,即值得數(shù)據(jù)庫表的最后一行。那么在這些條件滿足的許可之內(nèi),就是來顯示具體的信息了。

每次循環(huán)只能顯示數(shù)據(jù)庫表中的一行,如果要繼續(xù)讀取下行,那么 rs.MoveNext 功能真是如此。

7,rs("cn_title")等等 主要就是具體顯示記錄集中的哪個(gè)特定字段的信息值了。很是簡單。

8,最后不要忘了釋放資源空間關(guān)閉記錄集連接,關(guān)閉數(shù)據(jù)庫連接。

四,一些特殊條件

1,有沒有注意到,數(shù)據(jù)庫表信息的顯示一般是按照時(shí)間的先后排列的,也就經(jīng)常提到的按時(shí)間的升序排列。需要注意:按時(shí)間升序,并不一定每個(gè)數(shù)據(jù)庫表中都要有一個(gè)時(shí)間/日期類型的字段,只要存在一個(gè)自動(dòng)編號(hào)的字段就可以了。因?yàn)樵撟侄问怯啦恢貜?fù),并且是依次增大的。因此,按時(shí)間升序其實(shí)就是按自動(dòng)編號(hào)中號(hào)碼數(shù)值的增加來進(jìn)行排序的。

當(dāng)然,問題的關(guān)鍵來了,那就是要按照時(shí)間的降序排列,即始終從最新的內(nèi)容開始顯示。那具體需要哪些手術(shù)呢?
很簡單,將連接字符串稍做修改。

由 sql = "Select * from cnarticle" 添加修改為
sql = "Select * from cnarticle order by cn_id desc"
其中 order by cn_id 即通過cn_id字段,desc 即降序了。

2,有是時(shí)候,只需要提取最前或者最新的幾條信息,那這個(gè)又具體如何操作呢?同樣還是連接字符串的修改
由 sql = "Select * from cnarticle order by cn_id desc" 添加修改為
sql = "Select top 3 * from cnarticle order by cn_id desc"
其中 top 3 就表示提取最新的三條信息內(nèi)容了。

That's All. 現(xiàn)在一個(gè)文章系統(tǒng)、新聞系統(tǒng)或者留言本顯示部分的精華內(nèi)容你已不費(fèi)吹灰之力搞定。

留下你的是:文章的格式可能顯示不對(duì)勁,比如回車、空格都不顯示了,那么你就還要學(xué)會(huì)處理接受的數(shù)據(jù)庫表的值(在ASP的幾個(gè)練習(xí)中提到的);文章不能老是打開數(shù)據(jù)庫輸入信息啊,那么你就要繼續(xù)學(xué)會(huì)如何用ASP插入數(shù)據(jù)到庫表;再有就是文章多了,一個(gè)頁面看是不是很麻煩?那么你還要學(xué)會(huì)分頁技術(shù)……

要搞的太多了,后面我會(huì)詳細(xì)道來:)

標(biāo)簽:平頂山 孝感 馬鞍山 四平 遼陽 朝陽 防城港 湖北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP編程入門進(jìn)階(二十):ADO組件之顯示數(shù)據(jù)記錄》,本文關(guān)鍵詞  ASP,編程,入門,進(jìn)階,二十,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP編程入門進(jìn)階(二十):ADO組件之顯示數(shù)據(jù)記錄》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP編程入門進(jìn)階(二十):ADO組件之顯示數(shù)據(jù)記錄的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章