ASPX System.Data.OleDb 資料來源

ASPX 連接讀取 Access 資料庫物件記錄 (引用 OLE DB 資料來源物件) 連接字串。Import Namespace 命名空間。

<%@ Import Namespace="System.Data.OleDb" %>

取得網站相關路徑

確定 Access 資料庫的位置,取得 Web 服務器上的虛擬路徑,用於判斷指定 Access 資料庫的虛擬路徑實體檔案位置。

Response.Write( Server.MapPath("/db/Northwind.mdb") )

C:\Inetpub\wwwroot\db\Northwind.mdb


開啟 Access 資料庫

依據 Server.MapPath 虛擬路徑開啟 Access 資料庫 OleDbConnection 物件連接資料的唯一來源。於與伺服器的網路連線。根據伺服器 OLE DB 提供者所支援的版本功能,當建立 OleDbConnection 實例時,所有屬性都會設定為其初始值。讀取完成後須使用 Close() 關閉資料來源的連接。或 Dispose() 釋放 OleDbConnection 關閉連接。

Dim myConnection As OleDbConnection
myConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/Northwind.mdb"))
myConnection.Open()


對資料來源執行的 SQL 陳述式讀取或更新、刪除

對資料來源執行的 SQL 陳述式讀取或更新、刪除。OleDbCommand 使用 OleDbConnectionOleDbDataAdapterAccess 資料庫讀取符合的資料列。傳遞初始化的連接字串、讀取查詢 SQL SELECT 語句字串,Access 料庫資料表名稱的字串。

OleDbCommand(String, OleDbConnection)

String 查詢 SQL SELECT 語句字串。OleDbConnection 開啟 Access 資料庫來源的連接。

Dim OleMdbCommand As OleDbCommand
Dim rs As OleDbDataReader
Dim strSql As String = "SELECT * FROM Store_Information"
OleMdbCommand = New OleDbCommand(strSql, myConnection)
rs = OleMdbCommand.ExecuteReader()
Do While (rs.Read())
  Response.Write( rs.Item("Store_name") & rs.Item("S_SALE") ) '讀取符合的資料列
Loop
rs.Close()

請求資料來源使用 OleDbCommand.ExecuteReader 執行 SQL 陳述式所讀取傳回符合 Access 資料庫中資料列的命令。
而使用 OleDbCommand.ExecuteNonQuery 來執行不會傳回任何資料列,對應至 SQL 陳述式描述 UPDATEINSERTDELETE 陳述式無需傳回資料列的情況,傳回值為 -1。ExecuteScalar 只擷取單一值,例如從資料庫擷取匯總值。

ExecuteNonQuery

strSql = "UPDATE Store_Information SET Store_Qty = 302 WHERE S_Index = 1"
OleMdbCommand = New OleDbCommand(strSql, myConnection)
OleMdbCommand.ExecuteNonQuery()


關閉 Access 資料庫

myConnection.Dispose()
myConnection.Close()