| 控制項 | 用途 | 特色 |
|---|---|---|
SqlDataSource | SQL Server / OleDb / ODBC | 精靈設定 SELECT/INSERT/UPDATE/DELETE,支援參數化。 |
AccessDataSource | Access (.mdb) | SqlDataSource 簡化版,自動解析 Jet/OLEDB 連接字串。 |
ObjectDataSource | 自訂商業物件 (BLL/DAL) | 三層架構核心,繫結方法而非 SQL,支援自訂型別、分頁、排序。 |
XmlDataSource | XML 檔案 | XPath 篩選、XSLT 轉換,繫結 TreeView/Menu/GridView。 |
SiteMapDataSource | Web.sitemap | 專供導航控制項 (TreeView/Menu/SiteMapPath) 繫結。 |
EntityDataSource (3.5 SP1+) | Entity Framework | LINQ to Entities 整合,非 2.0 內建。 |
商業邏輯類別 (App_Code/Products.cs)
public class Products {
public DataSet GetProducts() {
string connStr = "Server=(local);Integrated Security=True;Database=Northwind";
using (SqlConnection conn = new SqlConnection(connStr)) {
SqlDataAdapter da = new SqlDataAdapter("SELECT ProductID, ProductName, UnitPrice FROM Products", conn);
DataSet ds = new DataSet();
da.Fill(ds, "Products");
return ds;
}
}
}
設定 ObjectDataSource 精靈步驟
Products 類別。GetProducts 方法作為 Select 方法。EnablePaging="true",SelectMethod 需接受 startRowIndex, maximumRows 參數並回傳總筆數 (配合 SelectCountMethod)。SortParameterName 指定排序參數名稱,方法內套用 DataView.Sort 或 SQL ORDER BY。SelectParameters/UpdateParameters 繫結 ControlParameter/QueryStringParameter/SessionParameter 等。