ADO.NET 架構

傳統的資料處理需仰賴相互連接的雙層式模型。隨著資料處理朝多層式架構發展,程式設計人員也逐漸改用中斷連接的方式,使應用程式更具延展性。

ADO.NET 元件

有兩種 ADO.NET 元件可讓您用來存取及操作資料:

  • .NET Framework 資料提供者

  • DataSet

.NET Framework 資料提供者

.NET Framework Data Providers 是一種明確設計用來操作資料以及快速存取順向唯讀資料的元件。Connection 物件提供與資料來源的連接。Command 物件可讓您存取資料庫命令,以傳回資料、修改資料、執行預存程序 (Stored Procedure),並且傳送或擷取參數資訊。DataReader 提供來自資料來源的高效能資料流。最後,DataAdapter 會提供 DataSet 物件與資料來源之間的橋接器。DataAdapter 使用 Command 物件於資料來源處執行 SQL 命令,以把資料載入 DataSet 並把 DataSet內的資料變更調節回資料來源。

DataSet

根據設計目的,ADO.NET DataSet 可獨立於任何資料來源外而存取資料。因此,它可與多個不同的資料來源一起使用、與 XML 資料一起使用,或用來管理應用程式的本機資料。DataSet 包含一或多個由資料列和資料行所組成的 DataTable 物件集合,此集合中也可包含 DataTable 物件中的主索引鍵、外部索引鍵、條件約束及資料的關聯資訊。

下圖將說明 .NET Framework 資料提供者與 DataSet 之間的關聯性。

ADO.NET 架構

資料提供者圖形

選擇 DataReader 或 DataSet

判斷應用程式應使用 DataReader (請參閱使用 DataReader 擷取資料) 或 DataSet (請參閱使用 ADO.NET 中的 DataSet) 時,應先考慮應用程式所需的功能型別。DataSet 的用途如下:

  • 請快取應用程式本機的資料,您才能加以操作。若您只需要讀取查詢結果,DataReader 將是比較理想的選擇。

  • 在各層間或從 XML Web Service 遠端處理資料。

  • 與資料動態互動,例如繫結 Windows Form 控制項,或將來自多個來源的資料合併和關聯。

  • 針對資料進行廣泛處理,與資料來源間不需要有開放連接,可將連接釋放給其他用戶端使用。

如果您不需要 DataSet 所提供的功能,則可採用 DataReader 以順向、唯讀的方式來傳回資料,藉以提升應用程式的效能。雖然 DataAdapter 會使用 DataReader 來填入 DataSet 的內容 (請參閱從 DataAdapter 填入 DataSet),但使用 DataReader 的效能會更高,因為這樣能節省 DataSet 所將消耗的記憶體,並免除建立和填入 DataSet 內容所需的處理。

XML 和 ADO.NET

ADO.NET 借用 XML 的功能來以中斷連接的方式存取資料。在 .NET Framework 中,將 ADO.NET 和 XML 類別設計得相當緊密,這兩者都是同一個架構上的元件。

.NET Framework 中的 ADO.NET 和 XML 類別交集於 DataSet 物件。DataSet 可以用來自 XML 的資料填入,檔案或 XML 資料流均可。不管 DataSet 內資料的來源為何,DataSet 都可寫入為與全球資訊網協會 (W3C) 相容的 XML,內含以 XML 結構描述定義語言 (XSD) 寫入的結構描述。由於 DataSet 的原生序列化格式是 XML,所以相當適合作為在各層間資料移動的媒體,因此,如需在遠端對 XML Web Service 來回傳送資料和結構描述內容時,DataSet 將是最佳選擇。

ADO.NET 平台需求

Microsoft .NET Framework SDK (含 ADO.NET) 的支援平台包括 Microsoft® Windows XP、Windows 2000、Windows NT 4 (含 Service Pack 6a)、Windows Millennium Edition、Windows 98 與 Windows CE。

Note注意事項

OLE DB 的 .NET Framework 資料提供者和 ODBC 的 .NET Framework 資料提供者必須使用 MDAC 2.6 或更新版本,建議使用 MDAC 2.8 Service Pack 1 (SP1)。您可以從 Data Access and Storage Developer Center 下載 MDAC 2.8 SP1。

下列程式碼範例顯示如何將 System.Data 命名空間併入應用程式,以便使用 ADO.NET:

Imports System.Data
using System.Data;

ADO.NET 類別位於 System.Data.dll 中,並與位於 System.Xml.dll 中的 XML 類別整合。編譯使用 System.Data 命名空間的程式碼時,請同時參考 System.Data.dll 和 System.Xml.dll。如需 ADO.NET 應用程式的範例,請參閱 ADO.NET 應用程式範例

在各層和用戶端間遠端處理或封送處理資料

DataSet 的設計可讓您使用 XML Web Service,透過 Web 輕鬆地將資料傳輸給用戶端,也可讓您使用 .NET 遠端服務在 .NET 元件間封送處理資料。同樣地,強型別的 DataSet 也可採用這種方式進行遠端處理。如需 XML Web Service 的概觀,請參閱 XML Web Service 概觀。如需參考範例,瞭解如何使用來自 XML Web Service 的 DataSet,請參閱從 XML Web Service 使用 DataSet

如需遠端服務的概觀,請參閱 .NET Framework 遠端處理概觀。請注意,在 ADO.NET 2.0 中,DataTable 物件也可以與遠端處理服務和 XML Web Service 一起使用。

請參閱

其他資源

ADO.NET 概觀