數據庫的應用在我們的生活和工作中已經無處不在,無論是一個小企業的OA系統,還是中國移動的運營系統,似乎都離不開數據庫的應用。對於大多數應用程序來說,不管它們是Windows桌面應用程序,還是Web應用程序,存儲和檢索數據都是其核心功能。所以針對數據庫的開發已經成為軟件開發的一種必備技能。如果說過去是“學好數理化,走遍天下都不怕”,那麼,對於今天的軟件開發者而言就是“學好數據庫,走到哪兒都不怵!”。
ADO.NET是微軟新一代.NET數據庫的訪問架構,ADO是ActiveX Data Objects的縮寫。ADO.NET是數據庫應用程序和數據源之間溝通的橋梁,主要提供一個面向對象的數據訪問架構,用來開發數據庫應用程序。
為了更好地理解ADO.NET的架構模型的各個組成部分,我們可以對ADO.NET中的相關對象進行圖示理解,如圖5-3所示的是ADO.NET中數據庫對象的關系圖。
圖5-3 ADO.NET對象模型
我們可以用趣味形象化的方式理解ADO.NET對象模型的各個部分,如圖5-4所示,可以看出這些對象所處的地位和對象間的邏輯關系。
ADO.NET趣味理解圖
對比ADO.NET的數據庫對象的關系圖,我們可以用對比的方法來形象地理解每個對象的作用,如圖5-4所示。
數據庫好比水源,存儲了大量的數據。
Connection好比伸入水中的進水籠頭,保持與水的接觸,只有它與水進行了“連接”,其他對象才可以抽到水。
Command則像抽水機,為抽水提供動力和執行方法,通過“水龍頭”,然後把水返給上面的“水管”。
DataAdapter、DataReader就像輸水管,擔任著水的傳輸任務,並起著橋梁的作用。DataAdapter 像一根輸水管,通過發動機,把水從水源輸送到水庫裡進行保存。DataReader 也是一種水管,
和DataAdapter不同的是,DataReader不把水輸送到水庫裡面,而是單向地直接把水送到需要水的用戶那裡或田地裡,所以要比在水庫中轉一下(速度)更快。
DataSet則是一個大水庫,把抽上來的水按一定關系的池子進行存放。即使撤掉“抽水裝置”(斷開連接,離線狀態),也可以保持“水”的存在。這也正是ADO.NET的核心。
DataTabe則像水庫中的每個獨立的水池子,分別存放不同種類的水。一個大水庫由一個或多個這樣的水池子組成。