ASP與ACCESS數(shù)據(jù)庫(kù)建立連接(附源碼)_第1頁(yè)
ASP與ACCESS數(shù)據(jù)庫(kù)建立連接(附源碼)_第2頁(yè)
ASP與ACCESS數(shù)據(jù)庫(kù)建立連接(附源碼)_第3頁(yè)
ASP與ACCESS數(shù)據(jù)庫(kù)建立連接(附源碼)_第4頁(yè)
ASP與ACCESS數(shù)據(jù)庫(kù)建立連接(附源碼)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、前言:如何通過(guò)ASP與數(shù)據(jù)庫(kù)建立連接是一個(gè)非?,F(xiàn)實(shí)的問(wèn)題,我盡量寫(xiě)得非常詳細(xì)。相信看了這篇文章相信您已經(jīng)能夠?qū)懗鲱?lèi)似的比較簡(jiǎn)單和實(shí)用的程序了。(一)數(shù)據(jù)庫(kù)的選擇:有許多的數(shù)據(jù)庫(kù)你可以選擇,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以達(dá)到存儲(chǔ)數(shù)據(jù)的功能。那么到底選擇什么數(shù)據(jù)庫(kù)最合適呢?其中SQL SERVER是服務(wù)器級(jí)的,足以應(yīng)付每天上萬(wàn)次的訪問(wèn)量。對(duì)于非服務(wù)器級(jí)的數(shù)據(jù)庫(kù)建議使用ACCESS97。因?yàn)椋海?)只要安裝了PWS或IIS4肯定有ACCESS的ODBC驅(qū)動(dòng),即你的系統(tǒng)肯定支持ACCESS數(shù)據(jù)

2、庫(kù)的存取。(2)ACCESS支持的SQL指令非常齊全。(3)ACCESS ODBC驅(qū)動(dòng)程序的效率非常高。雖然它不是服務(wù)器級(jí)的數(shù)據(jù)庫(kù),但是作為中小型企業(yè)內(nèi)部網(wǎng)的數(shù)據(jù)庫(kù)支持還是綽綽有余的。(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。本文就以ACCESS數(shù)據(jù)庫(kù)為準(zhǔn)介紹基于WEB的數(shù)據(jù)庫(kù)存取方法。 (二)例子:我們建立一個(gè)“客戶(hù)”數(shù)據(jù)庫(kù),需要保存如下的客戶(hù)資料:客戶(hù)名稱(chēng)、聯(lián)絡(luò)人姓名、所在城市、電話號(hào)碼。(1)首先建立ACCESS數(shù)據(jù)庫(kù)customer.mdb(今后有用的)。建立如下字段:客戶(hù)名稱(chēng)、聯(lián)絡(luò)人姓名、所在城市、電話號(hào)碼、客戶(hù)編號(hào)、時(shí)間。將表保存為"客戶(hù)&quo

3、t;(今后有用的,=>看看圖)。注意:建立字段時(shí)多作了2個(gè)(客戶(hù)編號(hào)、時(shí)間),因?yàn)樵诮窈笈判驎r(shí)要用到它們。建議今后做數(shù)據(jù)庫(kù)時(shí)最好都加上這2項(xiàng),不會(huì)沒(méi)用的。此外,在保存表時(shí)ACCESS會(huì)詢(xún)問(wèn)是否建立一個(gè)住關(guān)鍵字,我們不需要它所以不必建立。還有:時(shí)間字段的"默認(rèn)值"設(shè)成"now()",即去系統(tǒng)當(dāng)時(shí)的時(shí)間。同時(shí)將索引項(xiàng)設(shè)成"有(允許重復(fù))",含義:WEB上極有可能同時(shí)存取數(shù)據(jù),所以允許重復(fù),索引設(shè)成"有"可以加快排序速度。=>看看圖(2)建立遞交表單add.htm:源代碼如下:例如愛(ài)喜千團(tuán)網(wǎng)(換物網(wǎng),物物交換

4、網(wǎng),閑置物品交易網(wǎng),以物換物)<html><head><title>添加數(shù)據(jù)庫(kù)記錄</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF"><p align="center"><font size="5">添加數(shù)據(jù)庫(kù)記錄</fon

5、t></p><form method="post" action="adddatabase.asp"><div align="center"><table width="46%" border="0"><tr> <td width="28%"> <div align="right">公司名稱(chēng): </div></td><td width=&

6、quot;72%"> <input type="text" name="CompanyName"></td></tr><tr> <td width="28%"> <div align="right">聯(lián)絡(luò)人姓名: </div></td><td width="72%"> <input type="text" name="CName"

7、;></td></tr><tr> <td width="28%"> <div align="right">所在城市: </div></td><td width="72%"> <input type="text" name="City"></td></tr><tr> <td width="28%"> <div a

8、lign="right">電話號(hào)碼:</div></td><td width="72%"> <input type="text" name="Tel"></td></tr><tr> <td width="28%"> <div align="right"> </div></td><td width="72%">

9、<input type="submit" name="Submit" value="Submit"><input type="reset" name="reset" value="Reset"></td></tr></table></div></form></body></html>這與普通的HTML沒(méi)有任何區(qū)別,關(guān)鍵部分已經(jīng)用黃色標(biāo)記了。遞交方法用POST,遞交后處理

10、的程序是adddatabase.asp(下一步就重點(diǎn)討論它)。還有就是給每一個(gè)項(xiàng)目取一個(gè)名字(NAME,后面有用)。(三)關(guān)鍵部分:建立與數(shù)據(jù)庫(kù)的聯(lián)系并將表單中收集到的信息添加到ACCESS數(shù)據(jù)庫(kù)中。ASP代碼放在%和%>之間。 <%CompanyName = Request("CompanyName")CName = Request("CName")City = Request("City")Tel = Request("Tel")以上,首先取得表單中填寫(xiě)的數(shù)據(jù),使用ASP的Request對(duì)象非常容易

11、可以實(shí)現(xiàn)數(shù)據(jù)的收集。雙引號(hào)中的就是上一步建立的各個(gè)項(xiàng)目的名字(NAME)。所以今后為每個(gè)項(xiàng)目起名字是個(gè)好習(xí)慣,盡管有時(shí)候并不一定用得到。這樣取得的數(shù)據(jù)就保存在等號(hào)坐側(cè)的變量中了。 If CompanyName = "" Or CName = "" Or City = "" Or Tel = "" Then'Response.Write "<html><body><center><font size=5>請(qǐng)將資料填寫(xiě)完整。</font>&l

12、t;/center></body></html>"Response.Redirect "error.htm"Response.End End If這里是檢測(cè)各個(gè)項(xiàng)目是否輸入了東西,如果為空則不往下繼續(xù)執(zhí)行,顯示錯(cuò)誤信息。注意:你可以使用兩種方法。我都列出了。方法一:使用Response.Write方法寫(xiě)一個(gè)出錯(cuò)頁(yè)面,類(lèi)似于javascripts的document.write寫(xiě)法,只是ASP使用Response.write罷了。方法二:使用Response.Redirect方法導(dǎo)向出錯(cuò)頁(yè)面error.htm。我在方法一的代碼前加上單引號(hào)

13、表示注釋。(ASP中表示注釋用單引號(hào)')。 set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "driver=Microsoft Access Driver (*.mdb);dbq=" & DBPath(1)建立Connection對(duì)象:dbconnection,建立一個(gè)連接(Connection)是數(shù)據(jù)庫(kù)存取的開(kāi)始。我們使用ASP的內(nèi)建對(duì)象方法

14、Server.Createobject建立與數(shù)據(jù)庫(kù)的連接。ADODB是ASP的數(shù)據(jù)庫(kù)存取組件,不必?fù)?dān)心只要有ASP就有它了,是內(nèi)置的。 (2)使用dbconnection.open方法打開(kāi)數(shù)據(jù)庫(kù)customer.mdb。driver參數(shù)語(yǔ)法: driver=Microsoft Access Driver (*.mdb)必須這么寫(xiě)。告訴系統(tǒng)使用ACCESS ODBC驅(qū)動(dòng)處理。dbq參數(shù)用來(lái)指定打開(kāi)的數(shù)據(jù)庫(kù)文件,它必須是完整的路徑。例如"c:inetpubwwwrootcustomercustomer.mdb",我們使用Server.MapPath的方法取得數(shù)據(jù)庫(kù)的完整路徑。

15、Set rs = Server.CreateObject("ADODB.Recordset")建立Recordset對(duì)象rs。Connection僅僅是建立了與數(shù)據(jù)庫(kù)間的連接,要存取數(shù)據(jù)還應(yīng)該再建立Recordset對(duì)象。 rs.Open "客戶(hù)", dbconnection, adOpenDynamic, 3打開(kāi)數(shù)據(jù)庫(kù)中的表"客戶(hù)"(客戶(hù)是表名)。 語(yǔ)法:rs.open 數(shù)據(jù)表名或SQL指令,已經(jīng)建立的Connection對(duì)象(這里是dbconnection), 鎖定類(lèi)型rs.AddNewrs("公司名稱(chēng)") =

16、 CompanyNamers("聯(lián)絡(luò)人姓名") = CNamers("所在城市") = Cityrs("電話號(hào)碼") = Telrs.Update用AddNew向數(shù)據(jù)庫(kù)請(qǐng)求添加數(shù)據(jù)。最后用Update寫(xiě)入。注意:等號(hào)右側(cè)的變量保存著用Request取得的表單數(shù)據(jù)。雙引號(hào)內(nèi)的就是數(shù)據(jù)庫(kù)的字段,應(yīng)該與數(shù)據(jù)庫(kù)的一致啊。否則會(huì)出錯(cuò)的。這樣變量?jī)?nèi)的數(shù)據(jù)就寫(xiě)入了數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段內(nèi)了。 Response.Write "<html><body><center><font size=5>祝賀,您

17、的數(shù)據(jù)已經(jīng)添加進(jìn)數(shù)據(jù)庫(kù)了!<p>"Response.Write "<a href='viewdatabase.asp'>查看數(shù)據(jù)</a>"Response.Write "</font></center></body></html>"寫(xiě)入成功后顯示祝賀信息并建立查看數(shù)據(jù)庫(kù)記錄的連接。 %><html><head><title></title></head><body>&l

18、t;/body></html>(三)顯示/查看數(shù)據(jù)庫(kù)記錄:<% set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "driver=Microsoft Access Driver (*.mdb);dbq=" & DBPath建立與數(shù)據(jù)庫(kù)的連接,與上同。 SQL="select * from 客戶(hù) Order By 時(shí)間 D

19、ESC"SET CustomerList=dbconnection.EXECUTE(SQL)%>建立SQL查詢(xún)語(yǔ)句,表示從"客戶(hù)"表中查詢(xún)所有記錄,Order By 時(shí)間 DESC表示"按時(shí)間降序排序,"這樣最后添加的信息再最上面顯示。下面一句執(zhí)行SQL查詢(xún)并將結(jié)果返回給Recordset對(duì)象CustomerList。 <html><body><FONT SIZE="5"><center>數(shù)據(jù)庫(kù)記錄</center></FONT><CENTE

20、R><TABLE BORDER=1><tr> <td>編號(hào)</td><td>公司名稱(chēng)</td><td>聯(lián)絡(luò)人姓名</td><td>所在城市</td><td>電話號(hào)碼</td></tr><% DO WHILE NOT CustomerList.EOF %>檢測(cè)記錄是否到了最后一條。EOF表示End of File。 <TR><TD><% =CustomerList("客戶(hù)編號(hào)") %></TD><TD><% =

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論