吳 楊,孫 蔚
(陜西工業職業技術學院信息工程學院,咸陽,712000)
隨著Internet 技術的發展,使得瀏覽器成為展現信息的主要平臺之一,通過瀏覽器展示數據的平臺稱之為B/S(Browser/Server)結構。該結構是建立在C/S 結構之上的,同時也是對C/S 結構的一種改進及變化,實質上是一種三層C/S 結構。在該體系當中,用戶僅僅需要利用瀏覽器向網絡上的web 服務器發出請求,接受相關請求,其詳細步驟如下如1所示。B/S 結構與C/S 結構相比較,具有以下幾方面優勢:部署方便,維護容易;通過http 協議訪問Web 服務器,容易通過防火墻,因此配置難度較低。
ADO.NET 來源于ADO(ActiveX Data Objects),提供平臺互用性及可收縮的數據訪問,也增強了對非連接編程模式的支持,還支持RICH XML;允許與不同類型的數據源及數據庫進行交互;是一組用于與數據源進行交互的面向對象的類庫。用戶與數據庫系統的交互過程則是:第一步,用戶通過用戶界面面向系統進而發出數據操作的請求,而用戶界面在接受數據請求后傳到ADO.NET;第二步,ADO.NET 分析用戶所傳來的數據,通過數據庫訪問接口實現數據源的交互,向數據源發送SQL 指令;第三步,ADO.NET 就會將所獲取的訪問結果最終傳向用戶界面。
ADO.NET 可將組件分為兩大類,一類是數據操作,另一類是數據存取。數據的操作及存取則主要是通過數據提供程序及數據集共同完成的。數據提供程序(Data Provider)則包括Data Reader、Connection 及DataAdapter,通過這些組件進而實現數據的存取,所提供的程序分為一般數據提供程序及SQL Server 數據提供程序;數據集表示一種實際的數據,而該種數據則是用來連接數據庫及執行命令的。
根據不同的數據訪問需求,進而在B/S 模式下設計兩種連接數據庫的方式,一種是連接模式,另一種是斷開模式。
其一,連接模式下的數據庫訪問技術。所謂連接模式是指對數據的讀取及操作均在斷開數據庫連接之前進行操作,通過DataReader 對象來實現。利用DataReader 對數據庫中的只讀及只進的數據流,其查詢結果在查詢執行正在進行時返回,并將其存儲到客戶端的網絡緩沖區中。通過利用DataReader可提高應用程序的性能,究其原因在于該種模式可對數據立即進行檢索,同時只在內存中占用一行,這樣一來,就相應的減少了占用內存空間量,如下圖2 所示。
其二,斷開模式下的數據庫訪問技術。該種模式是指對數據的讀取在斷開數據庫連接之前所進行的工作。而該種模式則是使用DataSet 以及DataAdapter 對象來實現的,利用DataAdapter 對象,進而向DataSet 中填充一定數據。在整個過程中DataAdapter 對象所扮演的是數據庫與DataSet 之間的橋梁。當DataAdapter 對象采用Fill 方法將所需要查詢的結果填充到DataSet 中,進而實現其離線處理。同時允許在DataSet 中進行改、修及刪等相關操作。其斷開模式訪問數據庫技術的原理如下圖3 所示:
首先,連接數據庫,利用ADO.NET 從數據庫中發送及檢索數據,創建對數據庫的連接,一般情況下,針對不同的數據庫,通過創建相應的連接類來創建相關連接,實現性能的優化。例如:如果訪問SQL Server 數據庫,則創建SqlConnection類,如果訪問Access 數據庫,則創建OleDbconnection 類。其次,操作數據庫。連接數據庫之后,就是操作數據庫(數據的查詢、修改及刪除等,相應的就是傳送SQL 指令)。對于數據庫的操作可采用多種方式來實現,最為常用的對象就是SqlDataAdpater 對象、SqlComrsand 對象。最后,獲取數據集。數據集的獲取一般分為面向流及面向集的數據訪問,如果是輕量級的數據訪問,為了減輕應用服務器的壓力,應使用通過DataReader 數據對象。如果是離線數據訪問,則應使用DataSet 數據對象。此外,對于業務邏輯較為復雜的數據處理任務,可以考慮利用存儲過程來提高數據訪問的性能。
綜上所述,ADO.NET 可訪問關系數據、應用程序數據及XML 等,在B/S 模式下ADO.NET 數據庫訪問可通過兩種模式來進行訪問,一種是連接模式下的數據庫訪問,一種是斷開模式下的數據訪問。另外,可通過對存儲過程進行性能優化。在今后的研究中,則需要對ADO.NET 技術進行進一步的探討,進而設計出一種方便、簡單及高效的訪問技術。

圖1 B/S 結構模式

圖2 ADO.NET 數據庫訪問技術的連接模式

圖3 ADO.NET 數據庫訪問技術的斷開模式
[1]吳健,劉培奇,衛尊義等.基于ASP.NET 的企業網絡信息系統的設計與實現[J].信息技術,2013,(6):172-175.
[2]王平,賈化萍.C/S 和B/S 結合模式下應用系統的研究與開發[J].電腦與信息技術,2006,14(1):50-53.
[3]孫仁鵬.ADO.NET 在多層模式下應用的研究[J].計算機工程與設計,2010,31(16):3621-3624.