AccessDataSource 是 ASP.NET 2.0 專為 Microsoft Access 資料庫(.mdb)設計的資料源控制項,簡化連接字串設定,僅需指定 DataFile 屬性指向 MDB 檔案路徑,即可搭配 GridView、DetailsView 等資料繫結控制項快速呈現資料。
| 屬性 | 說明 |
|---|---|
DataFile | MDB 檔案相對/絕對路徑,支援 ~ 應用程式根目錄運算子(如 ~/App_Data/Northwind.mdb) |
SelectCommand | SQL SELECT 陳述式,支援參數化查詢 |
InsertCommand/UpdateCommand/DeleteCommand | 異動命令,配合參數實現雙向繫結 |
FilterExpression/FilterParameters | 資料篩選運算式與參數 |
AccessDataSource 至設計介面。C:\Websites\BegAspNet2Db\App_Data\Northwind.mdb,設計器自動轉換為 ~/App_Data/Northwind.mdb。Products 資料表 → 全選欄位 → 下一步 → 測試查詢 → 完成。ID="NorthwindProductsAccDataSource"。GridView 加入頁面 → 智慧標記「選擇資料來源」→ 選 NorthwindProductsAccDataSource → 完成。ID="NorthwindProductsGridView"。<%@ Page Language="VB" %>
<html><head><title>AccessDataSource Demo</title></head><body>
<h3>連接至 MDB 資料來源演示</h3>
<form runat="server">
<asp:AccessDataSource ID="NorthwindProductsAccDataSource" runat="server"
SelectCommand="SELECT * FROM Products"
DataFile="~/App_Data/Northwind.mdb">
</asp:AccessDataSource>
<asp:GridView ID="NorthwindProductsGridView" runat="server"
DataSourceID="NorthwindProductsAccDataSource">
</asp:GridView>
</form></body></html>
<asp:AccessDataSource ID="MySourceName" runat="server"
DataFile="MyMDBName.mdb"
SelectCommand="SELECT MyField1, MyField2 FROM MyTable">
</asp:AccessDataSource>
<asp:AccessDataSource ID="adsProducts" runat="server"
DataFile="~/App_Data/Northwind.mdb"
SelectCommand="SELECT ProductID, ProductName, UnitPrice FROM Products WHERE CategoryID = @CatID">
<SelectParameters>
<asp:QueryStringParameter Name="CatID" QueryStringField="cat" Type="Int32" DefaultValue="1" />
</SelectParameters>
</asp:AccessDataSource>
<asp:AccessDataSource ID="adsProducts" runat="server"
DataFile="~/App_Data/Northwind.mdb"
SelectCommand="SELECT ProductID, ProductName, UnitPrice, UnitsInStock FROM Products"
DeleteCommand="DELETE FROM Products WHERE ProductID = @ProductID"
UpdateCommand="UPDATE Products SET ProductName=@ProductName, UnitPrice=@UnitPrice, UnitsInStock=@UnitsInStock WHERE ProductID=@ProductID"
InsertCommand="INSERT INTO Products (ProductName, UnitPrice, UnitsInStock) VALUES (@ProductName, @UnitPrice, @UnitsInStock)">
<DeleteParameters>
<asp:Parameter Name="ProductID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="ProductName" Type="String" />
<asp:Parameter Name="UnitPrice" Type="Decimal" />
<asp:Parameter Name="UnitsInStock" Type="Int16" />
<asp:Parameter Name="ProductID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="ProductName" Type="String" />
<asp:Parameter Name="UnitPrice" Type="Decimal" />
<asp:Parameter Name="UnitsInStock" Type="Int16" />
</InsertParameters>
</asp:AccessDataSource>
搭配 GridView AllowDeleting/Editing/Inserting 即可零程式碼實現 CRUD。
App_Data 內檔案不被直接 HTTP 下載,建議放置 MDB 於此。web.config 另設連接字串。Insert/Update/DeleteParameters 集合順序必須與 SQL 陳述式參數順序一致。AccessDataSource 讓 ASP.NET 2.0 應用程式以最簡潔方式整合 Access 資料,是中小型專案、原型開發、部門級應用的理想選擇。