河南省科學技術信息研究院 高 俊
ADO.Net數據訪問技術分析
河南省科學技術信息研究院 高 俊
1.ODBC。最初,各個數據庫軟件開發商為自己的數據庫設計不同的數據庫管理系統(DBMS),不同類型數據庫之間的數據交換是一件非常麻煩的事情。為了解決這一問題,微軟提出了ODBC,即 開 放 式 數 據 庫 連 接 技 術(Open DataBase Connectivity),它試圖建立一種統一的應用程序數據庫訪問接口,通過它開發人員無需了解數據庫內部的結構就可以實現對數據庫的訪問。ODBC開創了數據訪問技術的一個里程碑,各數據庫廠商紛紛推出為自己數據庫系統設計的ODBC驅動程序。
2.OLE DB。隨著計算機技術的迅猛發展,ODBC在面對新的數據驅動程序的設計和構造方法時遇到了不少困難,OLE DB(Object Linkingand Embedding DataBase,對象連接和嵌入數據庫)技術便應運而生了。從某種程度上來說,OLE DB是ODBC發展的一個產物。OLE DB在設計上采用了多層模型,對數據的物理結構依賴更少,理論上說,任何一種能為OLE DB提供者所識別的語言都可以使用且不必嚴格基于SQL(Structured Query Language,結構化查詢語言)的標準。
3.ADO。ADO對OLE DB做了進一步的封裝。從整體上來看,ADO模型以數據庫為中心,具有更多的層次模型和更豐富的編程接口,它大致相當于OLE DB的自動化版本,雖然在效率上稍有遜色,但其追求的是簡單、友好的應用。通過ADO,不僅可以直接訪問基于SQL Server的數據庫,還可以訪問所有支持ODBC的數據庫。
ADO.NET是ADO最新發展的產物,具有更廣泛的通用性。ADO.NET技術的出現,開辟了數據訪問技術的新紀元。ADO. NET是VS.NET的重要組成部分,是新一代的數據存取技術。在ADO.NET中,通過Managed Provider所提供的應用程序編程接口(API),便可輕松地訪問各種數據源的數據,包括OLE DB和ODBC所支持的數據庫。圖1描述了有關數據訪問與鏈接標準的各種數據模型的邏輯關系。
1.關于Managed Provider和DataSet。
(1)Managed Provider。Managed Provider是ADO.NET中的一個核心內容,它描述鏈接的類型并協調應用程序和DataSet對象與數據庫之間的通信。正是因為Managed Provider提供了DataSet和數據中心(就是數據庫)之間的聯系,包含了對數據中心存取的一系列應用程序編程接口(API),才使得編寫應用程序的程序員在實現訪問各種數據源的數據時,只需通過Managed Provider所提供的應用程序編程接口(API),而無需了解其內部的實現細節。

(2)DataSet。DataSet是ADO.NET的中心概念,所有ADO. NET對象的基本原理和根源都是DataSet對象模型。在DataSet的內部是用XML來描述的,借助XML可以描述具有復雜關系的數據,比如最常見的父子關系等。DataSet具有的一個明顯的技術優勢,就是能夠容納復雜關系的數據。DataSet不依賴于數據源(如數據庫)而獨立存在于內存中,是一個離散的數據對象,可以把DataSet想象成內存中的數據庫,也就是把它理解為一個簡單、獨立和存在于內存中的數據庫視圖。一個DataSet可以包含任意數目的表,每個表一般對應于一個數據庫表或視圖。
2.通過ADO.NET訪問數據庫。
(1)導入名稱空間。ADO.NET提供2種托管提供程序用于訪問不同的數據源,它們分別擁有不同的名稱空間定義。如果想要訪問數據庫,就需要將這些名稱空間導入到相應的應用程序中。
(2)連接數據庫。無論使用何種方式對數據庫進行數據操作,很重要的一步就是要建立與數據庫的鏈接。建立一個鏈接,則需要創建一個SQLConnection類對象。SQLConnection類對象包含在名稱空間System.Data.SqlClient中。
(3)執行有關SQL查詢語句操作。創建好鏈接后,需要一種機制實現對數據庫進行操作,實際上就是對數據庫執行相關的SQL語句。為完成這一任務,需要創建一個SQLCommand類對象。SQLCommand類對象包含在名稱空間System.Data.SqlClient中。
本文,筆者簡單分析ADO.NET的一些概念和應用,數據庫訪問是程序中應用最普遍的部分。在成功鏈接數據庫之后,就可以直接編寫代碼了,也可進行數據處理、讀取、插入、更新數據及刪除數據等操作。