摘 要:數據庫訪問技術是應用軟件系統開發中非常重要的技術之一。以往應用軟件對數據庫的訪問實現復雜,訪問效率低。文中介紹了一種應用簡單且數據庫訪問效率較好的數據庫訪問技術ADO.NET技術。詳細介紹了ADO.NET數據庫訪問技術的對象模型組成,訪問數據庫的原理及一般操作步驟,最后通過一個具體的ASP.NET網站開發實例來說明了其應用。應用實例顯示,ADO.NET數據庫訪問技術的應用簡化了開發中數據庫訪問技術,提高了訪問效率,同時還提高了數據訪問的安全性。通過對此技術的研究與應用,希望能給相關的軟件開發人員及數據庫訪問技術人員提供借鑒與參考。
關鍵詞:ADO.NET;數據庫訪問技術;對象模型;數據庫服務器
中圖分類號:TP311.1 文獻標識碼:A
1 引言(Introduction)
數據庫訪問技術是應用軟件系統開發中至關重要的技術之一,過去軟件開發中實現數據庫訪問的方法非常復雜,訪問數據庫的效率較低。隨著社會信息化的不斷發展,計算機及網絡技術的不斷進步,數據庫信息化存儲技術已成為當今對大規模信息化數據組織及管理的重要手段與軟件系統基礎,同時也是信息化網絡管理系統開發技術的基礎。由此可見,數據庫訪問技術在軟件開發中顯得特別重要,幾乎大部分應用系統的開發都離不開數據庫訪問技術。下面結合本人多年來的軟件開發與設計經驗,探討一下ADO.NET數據庫訪問技術[1]在ASP.NET開發中的應用。
2 ADO.NET技術簡介(ADO.NET technology
introduction)
ADO.NET(ActiveX Data Object.NET)是由微軟公司開發用于方便開發人員在開發過程中訪問數據庫的一套組件模型,比以前的ADO數據訪問模型更靈活,更能滿足廣泛的數據訪問控制要求,同時也提供了更多的功能。ADO.NET技術模型不僅為.NET程序員公開提供了一組方便訪問數據庫的組件,同時也提供了方便開發人員創建分布式共享數據應用程序需要使用的一組組件模型。ADO.NET被嵌套在.NET平臺的Framework中,它提供了對關系型數據庫、XML數據庫[2]及應用程序數據庫等多種類型數據庫的訪問技術。ADO.NET應用范圍廣泛,不僅可以應用于桌面應用程序的開發,還可以應用于Web應用程序[3]的開發及其他應用程序的開發。ADO.NET與以往的數據訪問技術最大的不同之處在于:它支持應用程序與數據庫以完全非連接的數據緩存的方式交互,實現離線操作數據。
3 ADO.NET數據庫訪問技術(ADO.NET database
access technology)
3.1 ADO.NET數據庫訪問技術分析
ADO.NET組件模型中包含了有關數據庫訪問、數據庫操作及與數據庫訪問操作有關的一組對象模型,是.NET Framework的重要組成部分。ADO.NET組件模型以.NET的類庫形式呈現給用戶使用,主要包括兩個核心組件:.NET DataProvider(數據提供者)和DataSet(數據集)對象。
.NET Data Provider是一組為數據處理及快速循序、只讀訪問數據庫而設計的組件,主要提供方便應用程序連接數據庫的功能;提供以SQL語句的形式操作數據庫,且能以多種形式把查詢到的結果填充到DataSet(數據集)中。
DataSet數據集對象是ADO.NET組件模型中支持斷開式和分布式操作數據的核心對象。DataSet對象是駐留計算機內存中臨時存取的數據庫。DataSet的最大特點是提供始終保持與數據庫一致的關系型編程模型且獨立于任何數據庫的數據訪問而設計。DataSet對象的主要功能包括:用DataTable和Data Relations對象來存放由.NET Data Provider對象發生過來的數據庫訪問執行的結果集,以供應用程序訪問;把應用程序對數據庫的執行操作結果更新到數據源數據庫中。DataSet數據集對象能在與數據源斷開的情況下管理和儲存數據,對于大量訪問數據庫的場合來說這一點是非常實用的,因為這樣不僅可以減輕數據庫服務器訪問的壓力,同時還起到保護數據庫服務器的作用。ADO.NET組件的體系結構如圖1所示。
圖1 ADO.NET體系結構
Fig.1 ADO.NET architecture
3.2 ADO.NET數據庫訪問技術實現原理
從ADO.NET體系結構圖可以看到,ADO.NET組件對象模型由Connection、Command、DataReader、DataAdapter和DataSet五個數據庫連接及操作對象組成。它們分工協作,完成對數據源的訪問及操作任務。其中,Connection對象主要負責連接各種類型的數據源,Command對象主要用于生成并執行應用程序所需的SQL語句,DataReader對象負責循序讀取執行SQL語句后的數據庫中的數據,DataAdapter對象負責將執行Command對象的SQL語句得到的數據庫結果搬運到DataSet中,DataSet對象負責存取和更新數據源數據。
通過對ADO.NET數據庫訪問技術原理圖可知,ADO.NET組件模型是連接應用程序與數據庫的橋梁,如圖2所示為ADO.NET數據庫訪問技術原理結構示意圖。在.NET應用程序開發中,應用程序如果要訪問數據庫就需要使用ADO.NET組件,然而幾乎所有應用程序都離不開數據庫的訪問,可見在.NET應用程序開發中,ADO.NET數據庫訪問技術非常重要。
3.3 ADO.NET數據庫訪問技術實現的一般步驟
使用ADO.NET數據庫訪問技術訪問數據庫進行軟件系統開發過程中,盡管ADO.NET組件模型包括的對象較多,訪問數據庫的技術靈活復雜,但也不是沒有規律可循。在軟件開發中利用ADO.NET訪問數據庫操作的一般步驟如下:
第一步:創建ADO.NET數據庫連接對象(Connection對象)開啟與數據源的連接。
第二步:在第一步中建立的數據庫連接對象基礎上,再創建一個執行數據庫操作的命令對象(Command對象)以執行指定的操作。
第三步:執行數據庫操作命令對象得到操作結果,通過使用DataReader對象采用與數據庫連接的模式來取得執行的命令的相應結果,或創建并執行數據適配器對象(DataAdapter對象),將執行數據庫操作命令對象得到操作結果填充到數據集對象中,應用程序再從數據集對象中獲取相應數據結果。
第四步:應用程序對數據處理完畢后,使用Command命令對象或DataAdapter對象將處理結果更新到數據源中。
第五步:釋放ADO.NET對象模型中各種數據提供者所使用的對象資源,斷開數據庫連接。
圖2 ADO.NET數據庫訪問技術原理
Fig.2 ADO.NET database access technology principle
4 ADO.NET數據庫訪問技術的應用(Application
of ADO.NET database access technology)
眾所周知,支持離線訪問數據庫是ADO.NET數據庫訪問技術的一大優勢,這一點對于Web數據庫的訪問最為明顯,因為在ASP.NET網站的頁面中采用ADO.NET數據庫訪問技術使得頁面的安全性及執行效率都有較大提高。下面結合某學院校務公開網站中的新聞添加模塊功能為例來詳細闡述ADO.NET數據庫訪問技術在ASP.NET網站開發技術中的應用[4]。新聞添加模塊功能的實現是在系統后臺添加單擊添加新聞按鈕響應事件時,則向數據源里面添加一條新聞信息記錄。后臺程序語言使用C#,數據庫服務器使用SQL Server 2008,數據庫名稱為SWEB,NEWS為SWEB數據庫存儲記錄表,表中字段包括ID(列標志)、XWBT、XWLB、XWLY、XWTM。
在ASP.NET網站的系統文件web.config中配置數據庫連接字符串[5]如下:
在相應asp.net網頁的后臺創建數據庫連接類:
public class connection
{
public static SqlConnection getconnection() //創建連接函數
{
string connectionstringxinwen=WebConfigurationManager.ConnectionStrings[webConnectionString].ConnectionString;
If(string.IsNullOrEmpty(connectionstringxinwen)
throw new Exception(查找連接字符串失敗?。?/p>
SqlConnection conn=new SqlConnection(connectionstringxinwen)
return conn;
}
}
protected void btnenter_Click(object sender,EventArgse)//添加新聞按鈕函數定義
{
string XWBT=TxtBox1.Text.Tostring().Trim();
string XWLB=DropDownList.SelectedItem.Text.Tostring();
string XWLY= TxtBox2.Text.Tostring().Trim();
string XWTM=Editor.Text; //使用了網頁編輯器
SqlConnection conn=connection.getconnection();//創建數據庫連接對象
conn.open();//打開連接的數據庫
SqlCommand cmd=new SqlCommand(〝insert into news-values(@XWBT,@XWTM,@XWLB,@XWLY),conn); //創建數據庫操作命令對象執行插入操作
cmd.Parameters.AddWithValue(@XWBT,XWBT);
cmd.Parameters.AddWithValue(@XWLB,XWLB);
cmd.Parameters.AddWithValue(@XWLY,XWLY);
cmd.Parameters.AddWithValue(@XWTM,XWTM);
cmd.ExecuteNonQuery();//執行插入操作命令
Response.Write();
conn.close()// 斷開與數據庫的連接
conn.Dispose();//釋放各種數據提供者對象資源
}
5 結論(Conclusion)
數據庫訪問技術是應用程序開發中一項煩瑣且復雜的操作,尤其在網站開發中更顯重要。ADO.NET數據庫訪問技術的提供,成功實現了離線狀態下客戶端數據訪問技術,這一點使得軟件開發人員能以更加有效的方式設計開發出更高效的數據庫應用程序系統。ADO.NET數據庫訪問技術使用靈活,要想在開發過程中能靈活運用,必須多加實踐多應用。
參考文獻(References)
[1] 應毅,毛宇光,劉正濤.基于ADO.NET技術的Web訪問數據庫 研究與實現[J].計算機與現代化,2005(04):64-67;101.
[2] 紀兆輝,胡孔法.基于ADO.NET和XML實現數據交換[J].微計 算機信息.2009(18):265-266;230.
[3] 蔣薇,等.基于ADO.NET數據訪問技術的研究和應用[J].微計 算機信息,2010(10):141-143.
[4] 張嵐,高建芳.ADO.NET技術及其實踐應用[J].內蒙古科技與 經濟,2012(10):40-42.
[5] 朱子江,胡毅,劉東.基于ADO.NET的數據庫連接池技術的優 化研究[J].計算機與現代化,2011(07):168-171.
作者簡介:
方開紅(1978-),男,碩士,講師.研究領域:計算機應用技 術,網絡視頻傳輸技術及軟件開發與設計.