• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ADO.NET數(shù)據(jù)庫訪問技術(shù)淺析

      2012-04-29 03:10:09李成楠楊晶
      科技創(chuàng)新導報 2012年12期
      關(guān)鍵詞:數(shù)據(jù)源應用程序客戶端

      李成楠 楊晶

      引言

      Microsoft ActiveX Data Objects(ADO).NET是一種把基于Microsoft.NET的Web應用程序以及Microsoft Windows應用程序連接到諸如SQL Server數(shù)據(jù)庫或XML文件等數(shù)據(jù)源的技術(shù)。ADO.NET專門為諸如Internet這樣的無連接的工作環(huán)境而設計,它提供了一種簡單而靈活的方法,便于開發(fā)人員把數(shù)據(jù)訪問和數(shù)據(jù)處理集成到Web應用程序中。

      ADO.NET結(jié)構(gòu)作為一個高效的.NET程序語言。其混合了函數(shù)語言和物件導向程序編制語言,并且完美的是用于編程、算法、技術(shù)和探索性開發(fā),因此可以在使用的過程當中感受到趣味性和吸引力。

      1 組成及功能

      ADO.NET是微軟.NET框架的一部分,它由一組工具和層組成,應用程序可以借此與基于文件或基于服務器的數(shù)據(jù)存儲很輕松地進行通信和管理。ADO.NET是在.NET Framework環(huán)境中用于訪問數(shù)據(jù)庫的一組組件類。在基于.NET Framework開發(fā)的應用程序中,如果要訪問數(shù)據(jù)庫,是用ADO.NET是目前的最佳選擇。ADO.NET是與C#和.NET Framework一起使用的類集的名稱,用于以關(guān)系型的、面向表的格式訪問數(shù)據(jù)。使用ADO.NET可以更容易地實現(xiàn)對關(guān)系和非關(guān)系數(shù)據(jù)的訪問,并且ADO.NET統(tǒng)一了XML和關(guān)系數(shù)據(jù)訪問,支持Internet上的多層應用程序,與上一代技術(shù)相比,ADO.NET可以擴充以支持更多的數(shù)據(jù)源。

      ADO.NET可以使用XML作為通用的數(shù)據(jù)傳送格式。只要處理數(shù)據(jù)的不同的平臺有XML分析程序,就可以實現(xiàn)不同平臺之間極好的互操作性。其次,ADO.NET具有十分強大的可伸縮性。對于Web應用程序來說,很難估計同一個時刻會有多少用戶在提交訪問。而在使用ADO時,ADO的可伸縮性不強通常合成為導致服務器崩潰的主要原因之一。而在ADO.NET中,由于對已經(jīng)斷開連接的數(shù)據(jù)集并不保存長時間的數(shù)據(jù)鎖和數(shù)據(jù)連接,所以相比之下,服務器端的負荷就大大減少。

      2 ADO.NET與ADO的差異

      ADO.NET是一種基于Microsoft ADO的新技術(shù),它并不是ADO的修訂版,而是建立在ADO之上,用于處理數(shù)據(jù)的一種全新技術(shù)。ADO.NET在以前的ADO版本的基礎上做了許多改進,大大簡化了Web應用程序與數(shù)據(jù)庫連接處理。ADO.NET與ADO可以共存。雖然大部分基于.NET的Web應用程序使用ADO.NET,但是通過使用.NET COM互操作服務可使ADO對.NET程序員仍然可用。

      ADO.NET是一系列用于連接和處理數(shù)據(jù)源的類,與基于COM、依賴于連接并使用OLEDB訪問數(shù)據(jù)的ADO不同。ADO.NET是為在無連接的環(huán)境中連接數(shù)據(jù)而特別設計的,這使得它成為基于Internet的Web應用程序的最佳選擇。ADO.NET用XML作為在數(shù)據(jù)庫與Web應用程序之間往返傳輸數(shù)據(jù)的形式,這確保了它比ADO具有更強大的兼容性和靈活性。

      在ADO中,數(shù)據(jù)在內(nèi)存中的表示形式為記錄集,在ADO.NET中,它為數(shù)據(jù)集。他們之間有很大的差異。

      3 ADO.NET的對象體系

      ADO.NET可以在兩種模式下工作:非連接模式和連接模式。其中,在連接模式下訪問數(shù)據(jù)庫,應用程序需要首先創(chuàng)建對數(shù)據(jù)庫的連接,然后把命令發(fā)送到連接,再連接將命令傳遞到數(shù)據(jù)庫,最后將從數(shù)據(jù)庫返回的數(shù)據(jù)保存到DataReader對象中;而在非連接模式下,從數(shù)據(jù)庫返回的數(shù)據(jù)被保存到ADO.NET中的DataSet組件中,該組件允許應用程序從數(shù)據(jù)庫檢索數(shù)據(jù),并可以離線處理,然后創(chuàng)建新連接把對數(shù)據(jù)庫的更新保存到數(shù)據(jù)庫中。

      3.1 連接對象

      面向連接的部分是那些數(shù)據(jù)源交互和處理時必須要有打開的可用連接的對象。在ADO.NET中面向連接的部分主要包括如下對象:

      (1)Connection對象表示一個數(shù)據(jù)源的開放式連接。用戶必須首先創(chuàng)建一個Connection對象,然后再使用其它的對象來訪問數(shù)據(jù)庫。因此,Connection對象是ADO對象模型的基礎。連接對象的例子有OleDb Connection、SqlConnection等。

      (2)Command對象代表對數(shù)據(jù)源執(zhí)行的命令。使用Command命令可以查詢數(shù)據(jù),并將查詢結(jié)果返回給RecordSet對象。

      (3)Parameter對象表示Command對象的一個獨立參數(shù)。這個對象是SQL查詢時的一個運行參數(shù),或者是存儲過程中的輸入或輸出參數(shù)。

      (4)DataAdapter對象充當DataSet和數(shù)據(jù)源之間用于檢索和保存數(shù)據(jù)的橋梁。DataAdapter類代表用于填充DataSet以及更新數(shù)據(jù)源的一組數(shù)據(jù)庫命令和一個數(shù)據(jù)庫連接。DataAdapter對象是ADO.NET數(shù)據(jù)提供程序的組成部分,該數(shù)據(jù)提供程序還包括連接對象、數(shù)據(jù)讀取器對象和命令對象。

      (5)DataReader對象是一個快速而易于使用的對象,可以從數(shù)據(jù)源中讀取僅能向前和只讀的數(shù)據(jù)流。此對象具有最好的功能,可以簡單地讀取數(shù)據(jù)。

      3.2 非連接對象

      非連接對象是使用ADO.NET構(gòu)建的。非連接應用程序通常盡可能晚地連接,并且盡早地斷開連接。ADO.NET中非連接的部分主要需要如下對象:

      (1)DataSet類是ADO.NET的主要成員之一,它是從數(shù)據(jù)庫中檢索到的數(shù)據(jù)在內(nèi)存中的緩存,代表了一個或多個數(shù)據(jù)庫表中數(shù)據(jù)的非連接視圖。

      (2)DataTablel對象代表在DataSet中的表。一個DataSet對象通常包含一個或多DataTablel對象。每個DataTablel對象又包含一個或多個DataColumn和DataRow。它以行或列存儲數(shù)據(jù)。

      (3)DataColumn對象代表表中的一列。

      (4)DataRow對象代表來自表的關(guān)聯(lián)數(shù)據(jù)的一行。

      (5)DataView的一個主要功能是允許在Windows窗體和Web窗體上進行數(shù)據(jù)綁定。另外,可自定義DataView來表示DataTable中數(shù)據(jù)的子集。此功能擁有綁定到同一DataTable,但顯示不同數(shù)據(jù)版本的兩個空間。

      (6)DataRelation對象代表通過共享列而發(fā)生關(guān)系的兩個表之間的關(guān)系。每個DataR elation對象通過DataColumn對象與一對DataTable對象關(guān)聯(lián)。通過匹配兩張表中的列可以建立關(guān)系。

      4 數(shù)據(jù)訪問的3個典型階段

      數(shù)據(jù)訪問有3個典型階段:首先從數(shù)據(jù)源中訪問數(shù)據(jù),并把數(shù)據(jù)顯示出來;然后進行數(shù)據(jù)處理;會后把更新后的數(shù)據(jù)返回到數(shù)據(jù)庫。

      4.1 訪問數(shù)據(jù)

      用戶請求一個頁面,頁面創(chuàng)建SqlConne ction對象和SqlDataAdapter對象,使用SqlDataAdapter對象從數(shù)據(jù)庫中生成一個DataSet,然后通過控件把DataSet返回給用戶。

      4.2 處理數(shù)據(jù)

      生成DataSet后,用戶就可以瀏覽并處理數(shù)據(jù)。瀏覽和處理數(shù)據(jù)的時候,客戶端與Web服務器之間沒有連接,Web服務器和數(shù)據(jù)庫服務器之間也沒有連接。DataSet的設計使得這種無連接的系統(tǒng)比較容易實現(xiàn)。由于DataSet是無狀態(tài)的,所以可以在Web服務器和客戶端之間安全傳輸而無需占用服務器資源。

      4.3 更新數(shù)據(jù)庫

      用戶完成瀏覽并修改數(shù)據(jù)之后,客戶端把修改后的DataSet返回到頁面,此頁面用DataAdapter協(xié)調(diào)返回的DataSet與數(shù)據(jù)庫中原始數(shù)據(jù)之間的變化。數(shù)據(jù)以XML格式先在客戶端和Web服務器之間傳送,然后在Web服務器和數(shù)據(jù)庫服務器之間傳送。

      5 編程中的應用

      在實際應用中,建立程序與數(shù)據(jù)庫的連接如下:

      (1)首先要導入所需要的命名空間;

      (2)建立指向數(shù)據(jù)的數(shù)據(jù)連接;

      (3)在此數(shù)據(jù)連接上,建立一個SQL語句,用來返回所需要用的數(shù)據(jù)集;

      (4)打開數(shù)據(jù)連接,執(zhí)行SQL語句,返回所需的數(shù)據(jù)集;

      (5)關(guān)閉數(shù)據(jù)集,關(guān)閉數(shù)據(jù)連接。

      相關(guān)的代碼如下:

      using System;

      using System.Data.SqlClient;

      using System.Windows.Forms;

      string strConnect=”server=.//sqlexpress;integrated security=true;database=myData”;

      SqlConnection con=new SqlConnection(strConnect);

      SqlCommand cmd=new SqlCommand();

      con.Open();

      SqlDataReader reader=cmd.ExcuteReader();

      reader.Close();

      con.Close();

      6 ADO.NET的好處

      使用ADO.NET的好處分成以下類別:

      互操作性:ADO.NET應用程序可以利用XML的靈活性和廣泛接受性。由于XML是用于在網(wǎng)絡中傳輸數(shù)據(jù)集的格式,因此可以讀取XML格式的任何組件都可以處理數(shù)據(jù)。

      可維護性:在已部署系統(tǒng)的生存期中,適度的更改是可能的,但由于十分困難,所以很少嘗試進行實質(zhì)的結(jié)構(gòu)更改。

      可編程性:Visual Studio中的ADO.NET數(shù)據(jù)組件以不同方式封裝數(shù)據(jù)訪問功能,幫助您加快編程速度并減少犯錯幾率。例如,數(shù)據(jù)命令提取生成和執(zhí)行SQL語句或存儲過程的任務。

      結(jié)語

      通過以上的介紹,首先,在ADO.NET結(jié)構(gòu)和功能的基礎上,分析了ADO.NET與ADO差異;其次,分別對ADO.NET的對象體系的主要對象進行了說明;最后,在編程中對數(shù)據(jù)庫連接方法的實現(xiàn)。可以了解到ADO.NET為數(shù)據(jù)庫的訪問提供了一種全新的、簡單高效的數(shù)據(jù)庫訪問技術(shù),它使得數(shù)據(jù)編程變得更加容易;同時,也為編程人員提供了功能更為強大的數(shù)據(jù)訪問方式。因此,ADO.NET在軟件開發(fā)環(huán)境的發(fā)展中起到至關(guān)重要的作用和地位。

      參考文獻

      [1] 何玉潔.數(shù)據(jù)庫原理與應用教程.機械工業(yè)出版社,2010(9).

      [2] 韓小祥,劉志軍.C#程序設計.北京科海電子出版社,2009(4).

      猜你喜歡
      數(shù)據(jù)源應用程序客戶端
      刪除Win10中自帶的應用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      縣級臺在突發(fā)事件報道中如何應用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
      基于不同網(wǎng)絡數(shù)據(jù)源的期刊評價研究
      基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評價算法
      分布式異構(gòu)數(shù)據(jù)源標準化查詢設計與實現(xiàn)
      客戶端空間數(shù)據(jù)緩存策略
      關(guān)閉應用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      盐池县| 酒泉市| 永清县| 图木舒克市| 两当县| 翁源县| 泗洪县| 平舆县| 普洱| 广南县| 长治县| 额尔古纳市| 荣昌县| 霸州市| 义乌市| 社旗县| 桐城市| 马鞍山市| 深州市| 正阳县| 汝南县| 凌海市| 临海市| 新蔡县| 肇庆市| 昔阳县| 永福县| 灵台县| 开封市| 乡城县| 南通市| 博罗县| 黔西县| 溧水县| 建宁县| 罗城| 江油市| 中江县| 伊宁县| 东明县| 莱阳市|