第二章 文獻探討
2.3 系統開發相關技術介紹 [6] [7]
2.3.2 ADO.NET
2.3.2 ADO.NET
ADO.NET 是 ADO(Active Data Objects)資料存取模型所發展而出的 產品,直接滿足使用者開發可調適性應用式的需求。它是特別針對 Web 的 延展性 (Scalability)、無國界特性和 XML 而設計。
ADO.NET 使用許多 ADO 物件,例如 Connection 和 Command 物 件,而且還採用新的物件。重要的新 ADO.NET 物件包含DataSet、
DataReader 和 DataAdapter。這個進化的 ADO.NET 和前一版資料架構最 大差異在於有 DataSet 物件的存在,它不同於任何資料存放區。基於上述 因素,DataSet 可以當作獨立的實體 (Entity)。DataSet 可以被視為一個中 斷連接資料錄集(Disconnected Recordset),它並不知道其所包含的資料之來 源或目的端。在 DataSet 內部,很像是在資料庫中,有資料表、資料行、
關聯性 (Relationship)、條件約束 (Constraint)、檢視表 (View) 等等。
DataAdapter 是用來連接到資料庫的物件,以將資料填DataSet。然後,
根據在 DataSet 持有資料時所執行的作業,連接回資料庫以更新該處的資 料。在過去,資料處理是以連接為主。現在,為了使多層次應用程式更有 效率,資料處理轉向以訊息為基礎的方法,並以資訊區塊 (Chunk) 為中 心。在這個方法的中心是 DataAdapter,提供DataSet 和其來源資料存放區 之間擷取並儲存資料的橋樑。它依靠對資料存放區所產生的適當 SQL 命 令的要求而完成這項目的。
以 XML 為主的 DataSet 物件提供了一致的程式撰寫模型
(Programming Model),它和所有的資料存放模型 (扁平式、關聯式和階層 式) 相容。DataSet 並不知道它的資料來源為何,它會用集合物件和資料 型別來存放它的資料。不論 DataSet 內的資料來源為何,都可以使用 DataSet 及其附屬物件所公開的一組標準 API 來操作處理裡面的資料。
Managed 資料提供者提供資料控制項,易於與 OLEDB 和 ODBC 資料庫來源建立連接,這些資料來源包括 Microsoft SQL Server™、
Microsoft Access、Jet、DB2、Oracle 及其他資料格式,雖然 DataSet 不瞭 解串聯資料的來源,但是透過 Managed 提供者(Provider)詳細和特定的資 訊定義,則可快速有效的連結資料。因此,Managed 提供者的角色是連接、
填入和保存 DataSet 至/自資料存放區。
OLE DB 和SQL Server .NET 資料提供者(System.Data.OleDb 與 System.Data.SqlClient) 是 .Net Framework 的一部份,提供四種基本的物 件:Command、Connection、DataReader 和 DataAdapter。這些物件包含 功能有以下五種:
1. Connection -針對資料庫的連接和管理交易。
Connection 是用來與資料庫進行溝通,是由提供者特定類別所代表 的,例如 SQLConnection。瀏覽連接和結果集 (Resultset) 的命令是以資 料流形式傳回,可以由 DataReader 物件讀取或送回至 DataSet 物件。
2. Command -針對資料庫發出 SQL 命令。
Command 包含送出至資料庫的資訊,是由提供者特定類別所代表 的,例如 SQLCommand。任一命令可以是預存程序 (Stored Procedure) 呼叫、UPDATE 陳述式或可傳回結果的陳述式。您也可以使用輸入和輸 出參數,以及將傳回值當作命令語法的一部份。
3. DataReader -針對從SQL 資料來源讀取順向資料流的資料紀錄。
DataReader 物件有點同義於資料上唯讀/順向的資料指標 (Cursor)。
DataReader API 支援扁平式和階層式資料。在對資料庫執行命令之後,
會傳回 DataReader。傳回的 DataReader 物件的格式不同於資料錄集 (Recordset)。
4. DataSet -針對一般資料、XML 資料和關聯式資料進行儲存、遠端 處理和程式設計。
DataSet 物件表示資料的快取,具有類似資料庫的結構,例如資料 表、資料行、關聯性和條件約束。DataSet 物件不會直接與資料庫或其 他來源資料互動。這樣開發人員才能使用永遠一致的程式撰寫模型,而 不管來源資料所在的位置。
5. DataAdapter -針對資料庫將資料送回 DataSet,以及調解資料。
DataAdapter 物件可以當成 DataSet 和資料來源之間的橋樑。當開 發人員對 DataSet 做了變更之後,DataAdapter 物件會使用命令更新資 料來源。
圖 2- 3 SQL DataAdapter 示意圖[7]
資料來源:Microsoft .Net Framework SDK 快速入門教學課程