共用方式為


資料來源控制項概觀

更新:2007 年 11 月

ASP.NET 包含可以讓您使用不同資料來源類型的資料來源控制項,例如資料庫、XML 檔或中介層商務物件。資料來源控制項會連接至資料來源並擷取資料,然後在不需要程式碼的情況下,讓其他控制項能夠繫結至資料。它們也支援修改資料。

本主題提供 ASP.NET 中不同資料來源控制項類型的資訊。資料來源控制項模型是可擴充的,所以您也可以建立自己的資料來源控制項,以便與不同的資料來源互動,或是提供現有資料來源的其他功能。

資料來源控制項的比較

.NET Framework 包含資料來源控制項以支援不同的資料繫結案例。下表說明內建的資料來源控制項。本主題稍後會提供每種資料來源控制項的詳細資訊。

資料來源控制項

描述

LinqDataSource

讓您能在 ASP.NET 網頁中透過宣告式標記使用 Language-Integrated Query (LINQ),以便擷取和修改資料物件中的資料。支援自動產生選取、更新、插入和刪除命令。控制項也支援排序、篩選和分頁。

EntityDataSource

可以讓您繫結以 Entity Data Model (EDM) 為基礎的資料。支援自動產生更新、插入、刪除和選取命令。控制項也支援排序、篩選和分頁。

ObjectDataSource

能夠讓您使用商務物件或其他類別,並且建立依賴中介層物件以管理資料的 Web 應用程式。支援搭配其他資料來源控制項無法使用的進階排序和分頁案例。

SqlDataSource

能夠讓您使用 Microsoft SQL Server、OLE DB、ODBC 或 Oracle 資料庫。當搭配 SQL Server 使用時,支援進階的快取功能。當資料做為 DataSet 物件傳回時,這個控制項也支援排序、篩選和分頁。

AccessDataSource

能夠讓您使用 Microsoft Access 資料庫。當資料做為 DataSet 物件傳回時,支援排序、篩選和分頁。

XmlDataSource

能夠讓您使用 XML 檔,特別是針對階層式 ASP.NET 伺服器控制項,例如 TreeViewMenu 控制項。使用 XPath 運算式支援篩選功能,並且讓您能夠將 XSLT 轉換套用至資料。XmlDataSource 可以讓您儲存整個 XML 文件及其變更,以更新資料。

SiteMapDataSource

搭配 ASP.NET 網站巡覽使用。如需詳細資訊,請參閱 ASP.NET 網站巡覽概觀

LinqDataSource 控制項

LinqDataSource 控制項可讓您在 ASP.NET 頁面中使用 LINQ,擷取資料庫資料表或記憶體內部資料集合中的資料。您可以使用宣告式標記,以撰寫擷取、篩選、排序和分組資料時所需的所有條件。當您擷取 SQL 資料庫資料表中的資料時,可以設定 LinqDataSource 控制項以處理更新、插入及刪除作業。您可以撰寫這些 SQL 命令,即可執行這些工作。相較於在其他資料來源控制項中執行相同作業,使用 LinqDataSource 控制項,您就可以減少資料作業時所需的程式碼數量。

如需詳細資訊,請參閱 LinqDataSource Web 伺服器控制項概觀

SqlDataSource 控制項

SqlDataSource 控制項會使用 SQL 命令擷取和修改資料。SqlDataSource 控制項會使用 Microsoft SQL Server、OLE DB、ODBC 和 Oracle 資料庫。

SqlDataSource 控制項能夠傳回結果做為 DataReaderDataSet 物件。當傳回的結果做為 DataSet 時,其支援排序、篩選和快取。當您使用 Microsoft SQL Server 時,控制項會使用 SqlCacheDependency 物件提供附加優勢,能夠在資料庫變更時讓快取的結果失效。

如需詳細資訊,請參閱 SqlDataSource Web 伺服器控制項概觀

EntityDataSource 控制項

EntityDataSource 控制項可支援以 Entity Data Model (EDM) 做為基礎的資料繫結 (Data Binding) 案例。這項資料規格會將資料呈現為實體和關聯性的集合。Entity Framework 會在物件關聯對應和其他案例 (例如 ADO.NET Data Services) 中使用 EDM。EntityDataSource 控制項支援 Entity-SQL (eSQL) 做為查詢語言,同時支援 ObjectQuery<T> 類別所公開的查詢規格。

如需詳細資訊,請參閱 EntityDataSource Web 伺服器控制項概觀

ObjectDataSource 控制項

ObjectDataSource 控制項會使用商務物件,或依賴中介層商務物件,以管理資料之 Web 應用程式中的其他類別。這個控制項是用來與實作一個或多個方法的物件互動,以擷取或修改資料。當資料繫結控制項與 ObjectDataSource 控制項互動以擷取或修改資料時,ObjectDataSource 控制項會將繫結控制項提供的值傳遞給來源物件,做為方法呼叫中的參數。

來源物件的資料擷取方法,必須傳回實作 IEnumerable 介面的 DataSetDataTableDataView 物件。如果傳回資料做為 DataSetDataTableDataView 物件,ObjectDataSource 控制項就能夠快取和篩選資料。如果來源物件接受來自 ObjectDataSource 控制項的網頁大小和資料錄索引資訊,您也可以實作進階分頁案例。

如需詳細資訊,請參閱 ObjectDataSource Web 伺服器控制項概觀

XmlDataSource 控制項

XmlDataSource 控制項會讀取和寫入 XML 資料,所以可以搭配像是 TreeViewMenu 的控制項使用。XmlDataSource 控制項能夠讀取 XML 檔或 XML 字串。如果控制項是使用 XML 檔,可以將修改過的 XML 寫回原始程式檔。如果可以使用描述資料的結構描述,XmlDataSource 控制項就能夠使用結構描述公開使用型別成員的資料。

您可以將 XSLT 轉換套用至 XML 資料,以便讓您將未經處理資料的結構,從 XML 檔重組為較適合繫結至 XML 資料的控制項格式。

您也可以將 XPath 運算式套用至 XML 資料,讓您篩選 XML 資料以便只傳回 XML 樹系中某些節點,以尋找擁有特定值的節點等。使用 XPath 運算式會停用插入新資料的能力。

如需詳細資訊,請參閱 XmlDataSource Web 伺服器控制項概觀

AccessDataSource 控制項

AccessDataSource 控制項是 SqlDataSource 控制項的特定版本,特別用來搭配 Microsoft Access .mdb 檔使用。當搭配 SqlDataSource 控制項時,可以使用 SQL 陳述式定義控制項擷取資料的方式。

如需詳細資訊,請參閱 AccessDataSource Web 伺服器控制項概觀

SiteMapDataSource 控制項

SiteMapDataSource 控制項會使用 ASP.NET 網站導覽並且提供網站巡覽資料。其最常搭配 Menu 控制項使用。當您想要使用網站導覽資料,搭配並非特別為巡覽設計的 Web 伺服器控制項,例如 TreeViewDropDownList 控制項,以便自訂網站巡覽時,SiteMapDataSource 控制項也很有用。

如需詳細資訊,請參閱 SiteMapDataSource Web 伺服器控制項概觀

請參閱

概念

ASP.NET 資料存取概觀

繫結至資料庫

使用含有資料來源控制項的參數