古詩詞大全網 - 成語經典 - asp連接access數據庫怎麽實現的

asp連接access數據庫怎麽實現的

通過ASP與ACCESS數據庫建立連接(附源碼)(1)

前言:

如何通過ASP與數據庫建立連接是壹個非常現實的問題,我盡量寫得非常詳細。相信看了這篇文章相信您已經能夠寫出類似的比較簡單和實用的程序了。

(壹)數據庫的選擇:

有許多的數據庫妳可以選擇,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以達到存儲數據的功能。那麽到底選擇什麽數據庫最合適呢?其中SQL SERVER是服務器級的,足以應付每天上萬次的訪問量。對於非服務器級的數據庫建議使用ACCESS97。因為:(1)只要安裝了PWS或IIS4肯定有ACCESS的ODBC驅動,即妳的系統肯定支持ACCESS數據庫的存取。(2)ACCESS支持的SQL指令非常齊全。(3)ACCESS ODBC驅動程序的效率非常高。雖然它不是服務器級的數據庫,但是作為中小型企業內部網的數據庫支持還是綽綽有余的。(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。

本文就以ACCESS數據庫為準介紹基於WEB的數據庫存取方法。

(二)例子:我們建立壹個“客戶”數據庫,需要保存如下的客戶資料:客戶名稱、聯絡人姓名、所在城市、電話號碼。

(1)首先建立ACCESS數據庫customer.mdb(今後有用的)。建立如下字段:客戶名稱、聯絡人姓名、所在城市、電話號碼、客戶編號、時間。將表保存為"客戶"(今後有用的,===>看看圖)。註意:建立字段時多作了2個(客戶編號、時間),因為在今後排序時要用到它們。建議今後做數據庫時最好都加上這2項,不會沒用的。此外,在保存表時ACCESS會詢問是否建立壹個住關鍵字,我們不需要它所以不必建立。還有:時間字段的"默認值"設成"now()",即去系統當時的時間。同時將索引項設成"有(允許重復)",含義:WEB上極有可能同時存取數據,所以允許重復,索引設成"有"可以加快排序速度。===>看看圖

(2)建立遞交表單add.htm:

源代碼如下:

<html>

<head>

<title>添加數據庫記錄</title>

<meta pubwwwrootcustomercustomer.mdb",我們使用Server.MapPath的方法取得數據庫的完整路徑。

Set rs = Server.CreateObject("ADODB.Recordset")

建立Recordset對象rs。Connection僅僅是建立了與數據庫間的連接,要存取數據還應該再建立Recordset對象。

rs.Open "客戶", dbconnection, adOpenDynamic, 3

打開數據庫中的表"客戶"(客戶是表名)。 語法:

rs.open 數據表名或SQL指令,已經建立的Connection對象(這裏是dbconnection), 鎖定類型

rs.AddNew

rs("公司名稱") = CompanyName

rs("聯絡人姓名") = CName

rs("所在城市") = City

rs("電話號碼") = Tel

rs.Update

用AddNew向數據庫請求添加數據。最後用Update寫入。註意:等號右側的變量保存著用Request取得的表單數據。雙引號內的就是數據庫的字段,應該與數據庫的壹致啊。否則會出錯的。這樣變量內的數據就寫入了數據庫對應的字段內了。

Response.Write "<html><body><center><font size=5>祝賀,您的數據已經添加進數據庫了!<p>"

Response.Write "<a href='viewdatabase.asp'>查看數據</a>"

Response.Write "</font></center></body></html>"

寫入成功後顯示祝賀信息並建立查看數據庫記錄的連接。

%>

<html>

<head>

<title></title>

</head>

<body>

</body>

</html>

通過ASP與ACCESS數據庫建立連接(附源碼)(3)

瀏覽選項: 大中小 顏色 默認 灰度 橄欖色 綠色 藍色 褐色 紅色

(三)顯示/查看數據庫記錄:

<%

set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")

DBPath = Server.MapPath("customer.mdb")

dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

建立與數據庫的連接,與上同。

SQL="select * from 客戶 Order By 時間 DESC"

SET CustomerList=dbconnection.EXECUTE(SQL)

%>

建立SQL查詢語句,表示從"客戶"表中查詢所有記錄,Order By 時間 DESC表示"按時間降序排序,"這樣最後添加的信息再最上面顯示。下面壹句執行SQL查詢並將結果返回給Recordset對象CustomerList。

<html>

<body>

<FONT SIZE="5"><center>數據庫記錄</center></FONT>

<CENTER>

<TABLE BORDER=1>

<tr>

<td>編號</td>

<td>公司名稱</td>

<td>聯絡人姓名</td>

<td>所在城市</td>

<td>電話號碼</td>

</tr>

<% DO WHILE NOT CustomerList.EOF %>

檢測記錄是否到了最後壹條。EOF表示End of File。

<TR>

<TD><% =CustomerList("客戶編號") %></TD>

<TD><% =CustomerList("公司名稱") %></TD>

<TD><% =CustomerList("聯絡人姓名") %></TD>

<TD><% =CustomerList("所在城市") %></TD>

<TD><% =CustomerList("電話號碼") %></TD>

</TR>

<% =CustomerList("客戶編號") %>可以說是Response.Write方法的簡寫。將"客戶編號"字段內的數據寫入TD標簽間。

<% CustomerList.movenext

loop

%>

如果還沒有到最後壹條則指針移動到下壹條。用Do While ... Loop循環逐壹取得所有的記錄。

</TABLE>

</CENTER>

<center>

<input type="button" onclick="javascript:location.href='add.htm'" value="添加數據">

</center>

</BODY>

</HTML>

缺陷:僅僅實現了最基本的功能。先不說其它功能,僅就數據的添加和查看功能來看,比較完美的還應該加入“分頁功能”。否則數據大到壹定程度顯示全部數據基本上是不可能的。

本期至此全部完畢。