資源描述:
《淺析asp.net訪問數(shù)據(jù)庫技術(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、淺析ASP.NET訪問數(shù)據(jù)庫技術(shù) 摘要:隨著ASP.NET平臺(tái)的發(fā)展,ASP.NET架構(gòu)體系日益成熟而且應(yīng)用范圍越來越廣,ADO.NET技術(shù)成為這一體系中數(shù)據(jù)庫訪問、處理數(shù)據(jù)和應(yīng)用程序開發(fā)的關(guān)鍵技術(shù)。隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)信息的不斷增加,數(shù)據(jù)庫的訪問技術(shù)越來越受到關(guān)注,ADO.NET訪問數(shù)據(jù)技術(shù)得到了業(yè)內(nèi)廣泛的好評(píng)。介紹ASP.NET訪問數(shù)據(jù)庫的各種技術(shù),以及它們之間的差異,并且以C#實(shí)施。 關(guān)鍵詞:ASP.NET網(wǎng)頁設(shè)計(jì);數(shù)據(jù)連接;數(shù)據(jù)庫訪問 ASP.NET網(wǎng)頁設(shè)計(jì)的主要關(guān)鍵技術(shù)是訪問數(shù)據(jù)庫,網(wǎng)站架構(gòu)通常采用三層架構(gòu)模式,訪問數(shù)據(jù)庫主要是采用面向非連接的數(shù)據(jù)
2、訪問,是通過數(shù)據(jù)集DataSet間接訪問數(shù)據(jù)庫數(shù)據(jù)?! ∫?、網(wǎng)站三層架構(gòu) 當(dāng)前企業(yè)在開發(fā)項(xiàng)目時(shí)采用三層架構(gòu)作為項(xiàng)目的基礎(chǔ)架構(gòu)是主流趨勢(shì)[1]。將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,將不同的功能代碼分散開來,更利于系統(tǒng)的設(shè)計(jì)和協(xié)作開發(fā),同時(shí)為可能的變更提供了更小的單元,十分有利于系統(tǒng)的維護(hù)和擴(kuò)展。網(wǎng)站數(shù)據(jù)庫系統(tǒng)一般都會(huì)使用三層架構(gòu)[2]。各層的具體作用是: 1.數(shù)據(jù)訪問層DAL:用于實(shí)現(xiàn)與數(shù)據(jù)庫的交互和訪問,從數(shù)據(jù)庫獲取數(shù)據(jù)或保存數(shù)據(jù)到數(shù)據(jù)庫的部分?! ?.業(yè)務(wù)邏輯層BLL:業(yè)務(wù)邏輯層承上啟下,用于對(duì)上下交互的數(shù)據(jù)進(jìn)行邏輯處理,實(shí)現(xiàn)業(yè)務(wù)目標(biāo)。 3.表示層
3、Web:主要實(shí)現(xiàn)和用戶的交互,接收用戶請(qǐng)求或返回用戶請(qǐng)求的數(shù)據(jù)結(jié)果的展現(xiàn),而具體的數(shù)據(jù)處理則交給業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層去處理?! 《?、數(shù)據(jù)集DataSet的工作原理 ADO.NET數(shù)據(jù)集DataSet的工作原理[3]請(qǐng)參見下圖所示: ■ 上圖所示的過程就是ADO.NET數(shù)據(jù)集DataSet的工作原理。首先,客戶端與數(shù)據(jù)庫服務(wù)器端建立連接。然后,由客戶端應(yīng)用程序向數(shù)據(jù)庫服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求。數(shù)據(jù)庫服務(wù)器接到數(shù)據(jù)請(qǐng)求后,經(jīng)檢索選擇出符合條件的數(shù)據(jù),發(fā)送給客戶端的數(shù)據(jù)集,這時(shí)連接可以斷開。接下來,數(shù)據(jù)集以數(shù)據(jù)綁定控件或直接引用等形式將數(shù)據(jù)傳遞給客戶端應(yīng)用程序。如果客戶端應(yīng)用
4、程序在運(yùn)行過程中有數(shù)據(jù)發(fā)生變化,它會(huì)修改數(shù)據(jù)集里的數(shù)據(jù)。當(dāng)應(yīng)用程序運(yùn)行到某一階段時(shí),比如,應(yīng)用程序需要保存數(shù)據(jù),就可以再次建立客戶端到數(shù)據(jù)庫服務(wù)器端的連接,將數(shù)據(jù)集里的被修改數(shù)據(jù)提交給服務(wù)器,最后再次斷開連接?! “堰@種不需要實(shí)時(shí)連接數(shù)據(jù)庫的工作過程叫做面向非連接的數(shù)據(jù)訪問。在DataSet對(duì)象中處理數(shù)據(jù)時(shí),客戶端應(yīng)用程序僅僅是在本地機(jī)器上的內(nèi)存中使用數(shù)據(jù)的副本。這緩解了數(shù)據(jù)庫服務(wù)器和網(wǎng)絡(luò)的壓力,因?yàn)橹挥性谑状潍@取數(shù)據(jù)和編輯完數(shù)據(jù)并將其回傳到數(shù)據(jù)庫時(shí),才能連接到數(shù)據(jù)庫服務(wù)器?! ∪?shù)據(jù)庫連接 ASP.NET頁面文件對(duì)數(shù)據(jù)庫進(jìn)行查詢、插入、更新等操作之前,首先要建立與數(shù)
5、據(jù)庫的連接,然后再進(jìn)行相應(yīng)的操作處理。在ASP.NET中數(shù)據(jù)庫連接方式有兩種:一種是Web服務(wù)器數(shù)據(jù)控件以可視化方式的連接,另一種是以代碼方式連接?! ?.使用ASP.NET數(shù)據(jù)控件 若要使用數(shù)據(jù)控件連接至數(shù)據(jù)庫,需要執(zhí)行以下操作: ?。?)確定使用數(shù)據(jù)庫類型。ASP.NET提供的數(shù)據(jù)庫類型有SqlDataSource,AccessDataSource,ObjectDataSource,LinqDataSource, XmlDataSource等。 ?。?)根據(jù)選擇數(shù)據(jù)庫類型,提供特定類型的數(shù)據(jù)庫進(jìn)行通信的類。ADO.NET提供程序是可以與特定類型的數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)區(qū)
6、進(jìn)行通信的類。.NETFramework中包含的提供程序有:System.Data.SqlClient命名空間中用于SQLSERVER的.NETFramework數(shù)據(jù)提供程;System.Data.OleDb命名空間中用于OLEDB的.NETFramework數(shù)據(jù)提供程序;System.Data.Odbc命名空間中用于ODBC的.NETFramework數(shù)據(jù)提供程序;System.Data.OracleClient命名空間中用于Oracle的.NETFramework數(shù)據(jù)提供程序?! 。?)添加控件。根據(jù)選擇的數(shù)據(jù)庫添加相應(yīng)的數(shù)據(jù)庫連接控件。 2.使用代碼方式連接數(shù)據(jù)庫
7、 使用代碼方式連接數(shù)據(jù)庫的方式主要有在源代碼中利用相應(yīng)的Connection連接對(duì)象,利用連接字符串。 ?。?)源代碼中連接 ADO.NET提供Connection對(duì)象用于建立與特定數(shù)據(jù)源的連接。Connection類主要處理對(duì)數(shù)據(jù)庫的連接和數(shù)據(jù)庫事務(wù),它是操作數(shù)據(jù)庫的基礎(chǔ)。.net中提供了4類數(shù)據(jù)提供程序的連接對(duì)象[4]?! 。?)在Web.config文件中使用連接字符串 連接字符串提供相關(guān)信息,當(dāng)提供程序與特定數(shù)據(jù)庫進(jìn)行通信時(shí)需要這些信息??梢詫⑦B接字符串存儲(chǔ)在Web.config文件中,并引用數(shù)據(jù)源控件中的配置項(xiàng)