ASP入門(二十二)-連接數據庫


ADO 簡介

在 ASP 中訪問數據庫使用的 ADO 組件。

  • ADO 是一項微軟的技術。
  • ADO 指 ActiveX 數據對象(ActiveX Data Objects)。
  • ADO 是微軟的 Active-X 組件。
  • ADO 會隨 IIS 被自動安裝
  • ADO 是一個訪問數據庫中數據的編程接口

從 ASP 頁面訪問數據的方法

  1. 創建一個到數據庫的 ADO 連接
  2. 打開數據庫連接
  3. 創建 ADO 記錄集
  4. 從記錄集提取您需要的數據
  5. 關閉記錄集
  6. 關閉連接

ADO 數據庫連接

在進行數據訪問前,我們首先先要建立和數據庫的連接,ADO 通過 OLE DB 可以與許多數據庫建立連接,ADO 中的 Connection 對象用於建立和數據庫的連接。

在連接之前,我們需要建立一個數據連接字符串,請詳細學習上一篇第二十一講:
ASP入門(二十一) - 如何自己獲取 ADO 連接字符串

連接字符串中 Data Source 一定要用 Sever.MapPath 方法來轉化為服務器上絕對路徑。

加入了錯誤捕獲代碼(StartConnect.asp),連接數據庫出現錯誤時,及時給用戶友好的提示並終止頁面的繼續運行。代碼如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
'如果遇到錯誤,則不理會繼續執行
On Error Resume Next
Dim oConn, sConnString, sDBPath
'數據庫路徑及文件名
sDBPath = "1NorthWind.mdb"
'數據庫連接字符串
sConnString = "Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" & Server.MapPath(sDBPath)
'建立 Connection 對象的實例 oConn
Set oConn = Server.CreateObject("ADODB.Connection")
'調用 oConn 的 Open 方法打開連接
oConn.Open sConnString
'檢測是否出錯
Dim ErrInfo
If Err Then
  Err.Clear '清空錯誤
  ErrInfo = "數據庫連接出現錯誤,請聯系管理員!<br>"
  ErrInfo = ErrInfo & "終止頁面繼續運行"
End If
%>

我們已經建立了數據庫連接,但是我們的網站中,會有很多文件都涉及到數據的操作,因此將數據庫連接代碼單獨放置在一個文件(conn.asp)中,並將該文件放置到 根目錄下的 include 目錄中,數據庫文件放置到 database 目錄中,然后每個需要操作數據庫的頁面中,使用 #include file 代碼來進行引入,如下代碼:

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

執行 SQL 命令

Connect 對象提供了 Execute 方法來執行 SQL 語句,代碼如下:

<!--#include file="../include/conn.asp" -->
<%
Dim sql, RA
sql = "DELETE FROM [運貨商] WHERE [公司名稱]='聯邦貨運'"
oConn.Execute sql, RA
'RA返回的受影響的記錄數,如果成功刪除則顯示 > 0
oConn.Close
Set oConn = Nothing
%>

我們的 Execute 方法后面多了一個 RA 參數,這個參數可以返回受影響的記錄數。通過這個記錄數來判斷是否正確執行完 DELETE 任務。

小案例——查詢並得到記錄集

這里我們將用到 Recordset 對象,該對象代表從查詢返回的記錄和那些記錄的指針。‘

我們的例子將顯示產品表中的名稱、單位數量、單價信息,在 Access 中打開的數據表,所見到的結果如下:

20150824015

在 ASP 頁面中,我們通過輸出 HTML 表格來顯示這些信息,代碼(ShowProducts.asp)如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>顯示 Northwind 表中 產品 表信息</title>
</head>
<body>
<!--#include file="../include/conn.asp"-->
<%
Dim oRs, sql
sql = "SELECT * FROM [產品]"
Set oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open sql, oConn
%>
<h3>顯示 Northwind 表中 產品 表信息</h3>
<table border="1">
<tr>
  <th>編號</th>
  <th>產品名稱</th>
  <th>單位數量</th>
  <th>單價</th>
</tr>
<%
Dim num
num = 1
Do While NOT oRs.EOF '判斷是否處於記錄集的最末端
%>
<tr>
  <td><%=num%></td>
  <td><%=oRs("產品名稱")%></td>
  <td><%=oRs("單位數量")%></td>
  <td><%=oRs("單價")%></td>
</tr>
<%
  num = num + 1
  oRs.MoveNext '下一條記錄
Loop '結束循環 Do While

'關閉連接、清空對象
oRs.Close
Set oRs = Nothing
oConn.Close
Set oConn = Nothing
%>
</table>

</body>
</html>

顯示結果如下:

20150824016

示例代碼下載:

ADOConn.RAR


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM