一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP教程 - ASP編程入門進(jìn)階(二十):ADO組件之顯示數(shù)據(jù)記錄

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

2019-10-28 12:41asp教程網(wǎng) ASP教程

學(xué)習(xí)ASP的萬里長征就快到終點了:等把ASP的ADO組件搞定。當(dāng)然這也是最重要的一步,幾乎前面所有的學(xué)習(xí)都是為了這個最終的目的。OK,下面就來詳細(xì)系統(tǒng)地來一一掌握,步步為營,各個擊破。 一,擁有數(shù)據(jù)庫 可以這么說:靜態(tài)頁

學(xué)習(xí)ASP的萬里長征就快到終點了:等把ASP的ADO組件搞定。當(dāng)然這也是最重要的一步,幾乎前面所有的學(xué)習(xí)都是為了這個最終的目的。OK,下面就來詳細(xì)系統(tǒng)地來一一掌握,步步為營,各個擊破。

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

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

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

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

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

一切還得從實際操作開始。

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

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

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

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

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

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

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

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

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

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

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

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

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

1,conn.asp:主要起的是連接并打開某數(shù)據(jù)庫文件的功能。該文件建議單獨存在,并且位置是和存放數(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ù)庫的相對路徑賦到一個變量上,以方便下面繼續(xù)調(diào)用。

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

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

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

conn.Open connstr最后對象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 ("暫時還沒有文章")
else
Do Until rs.EOF
response.write("文章標(biāo)題是:"& rs("cn_title"))
response.write("<br>文章作者是:"& rs("cn_author"))
response.write("<br>文章加入時間是:"& 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ù)庫中輸寫了兩行)

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

下面就來具體一個一個解釋來理解沒行的含義:
1,<!--#include file="conn.asp" --> 沒有任何爭議,主要是調(diào)用conn.asp的所起的功效,這在解釋conn.asp文件的時候已經(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=26&log_id=283 

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

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


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

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

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

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

四,一些特殊條件

1,有沒有注意到,數(shù)據(jù)庫表信息的顯示一般是按照時間的先后排列的,也就經(jīng)常提到的按時間的升序排列。需要注意:按時間升序,并不一定每個數(shù)據(jù)庫表中都要有一個時間/日期類型的字段,只要存在一個自動編號的字段就可以了。因為該字段是永不重復(fù),并且是依次增大的。因此,按時間升序其實就是按自動編號中號碼數(shù)值的增加來進(jìn)行排序的。

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

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

2,有是時候,只需要提取最前或者最新的幾條信息,那這個又具體如何操作呢?同樣還是連接字符串的修改
由 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)在一個文章系統(tǒng)、新聞系統(tǒng)或者留言本顯示部分的精華內(nèi)容你已不費吹灰之力搞定。

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情综合色啪啪小说 | 久青草国产97香蕉在线视频 | 日本一区二区三区久久精品 | 国产亚洲综合精品一区二区三区 | 欧美三级小说 | 狠狠色综合久久久久尤物 | 果冻传媒在线完整免费观 | 亚洲欧美一区二区三区不卡 | 国产一卡二卡3卡4卡更新 | 久久久久久久尹人综合网亚洲 | 国亚洲欧美日韩精品 | 成人久久网站 | 视频一区国产精戏刘婷30 | 爆操| 91制片厂 果冻传媒 天美传媒 | 天天干天天色综合网 | 操儿子 | 日韩欧美精品一区二区 | 忘忧草研究院一二三 | 99热久久这里只有精品6国产网 | 青青青手机在线视频 | 99re在线精品视频免费 | 久久久久综合 | 亚洲色欲色欲综合网站 | 欧美yw193.c㎝在线观看 | 亚洲天天综合 | 国色天香社区视频在线观看免费完整版 | 午夜影院网页 | 精品牛牛影视久久精品 | 成人欧美一区在线视频在线观看 | 美国女网址www呦女 美国复古性经典xxxxx | 国产精品视频免费观看 | 肉浦团在线观看 | 国产一区二区三区欧美精品 | 久久久WWW免费人成精品 | 91短视频破解版 | 久久婷婷五月综合色精品首页 | 青青草国产精品免费 | jk制服蕾丝超短裙流白浆 | 饱满奶大30p | 日本韩国推理片免费观看网站 |