999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

1 組成及功能

ADO.NET是微軟.NET框架的一部分,它由一組工具和層組成,應(yīng)用程序可以借此與基于文件或基于服務(wù)器的數(shù)據(jù)存儲很輕松地進行通信和管理。ADO.NET是在.NET Framework環(huán)境中用于訪問數(shù)據(jù)庫的一組組件類。在基于.NET Framework開發(fā)的應(yīng)用程序中,如果要訪問數(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上的多層應(yīng)用程序,與上一代技術(shù)相比,ADO.NET可以擴充以支持更多的數(shù)據(jù)源。

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

2 ADO.NET與ADO的差異

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

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

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

3 ADO.NET的對象體系

ADO.NET可以在兩種模式下工作:非連接模式和連接模式。其中,在連接模式下訪問數(shù)據(jù)庫,應(yīng)用程序需要首先創(chuàng)建對數(shù)據(jù)庫的連接,然后把命令發(fā)送到連接,再連接將命令傳遞到數(shù)據(jù)庫,最后將從數(shù)據(jù)庫返回的數(shù)據(jù)保存到DataReader對象中;而在非連接模式下,從數(shù)據(jù)庫返回的數(shù)據(jù)被保存到ADO.NET中的DataSet組件中,該組件允許應(yīng)用程序從數(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對象模型的基礎(chǔ)。連接對象的例子有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)建的。非連接應(yīng)用程序通常盡可能晚地連接,并且盡早地斷開連接。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服務(wù)器之間沒有連接,Web服務(wù)器和數(shù)據(jù)庫服務(wù)器之間也沒有連接。DataSet的設(shè)計使得這種無連接的系統(tǒng)比較容易實現(xiàn)。由于DataSet是無狀態(tài)的,所以可以在Web服務(wù)器和客戶端之間安全傳輸而無需占用服務(wù)器資源。

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

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

5 編程中的應(yīng)用

在實際應(yīng)用中,建立程序與數(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應(yīng)用程序可以利用XML的靈活性和廣泛接受性。由于XML是用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù)集的格式,因此可以讀取XML格式的任何組件都可以處理數(shù)據(jù)。

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

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

結(jié)語

通過以上的介紹,首先,在ADO.NET結(jié)構(gòu)和功能的基礎(chǔ)上,分析了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īng)用教程.機械工業(yè)出版社,2010(9).

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

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
數(shù)據(jù)庫
財經(jīng)(2015年3期)2015-06-09 17:41:31
數(shù)據(jù)庫
財經(jīng)(2014年21期)2014-08-18 01:50:18
數(shù)據(jù)庫
財經(jīng)(2014年6期)2014-03-12 08:28:19
數(shù)據(jù)庫
財經(jīng)(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 99成人在线观看| 自拍欧美亚洲| 老司机午夜精品网站在线观看| 黄色在线不卡| 欧美日韩午夜| 欧美一区中文字幕| 在线精品欧美日韩| 国产人碰人摸人爱免费视频| 天堂成人av| 9966国产精品视频| 亚洲AV人人澡人人双人| 亚洲AV成人一区二区三区AV| AV在线天堂进入| 精品国产黑色丝袜高跟鞋| 亚洲 日韩 激情 无码 中出| 日本高清免费一本在线观看| 日韩无码视频网站| 国产精品无码AⅤ在线观看播放| 婷婷亚洲视频| 欧美在线精品怡红院| 精品伊人久久久久7777人| 成人在线第一页| 精品福利国产| 色精品视频| 国产av一码二码三码无码| 最新无码专区超级碰碰碰| 91 九色视频丝袜| 热久久国产| 欧美a√在线| 欧美精品亚洲精品日韩专区va| 亚洲最大综合网| 国产麻豆精品久久一二三| 91在线精品免费免费播放| 亚洲精品无码AⅤ片青青在线观看| 欧美在线导航| 国产成熟女人性满足视频| 中文成人在线| 国产鲁鲁视频在线观看| 无码精油按摩潮喷在线播放| 午夜精品久久久久久久无码软件| 麻豆精品国产自产在线| 色噜噜综合网| 欧美a网站| 97se亚洲综合| 依依成人精品无v国产| 亚亚洲乱码一二三四区| 一区二区三区四区在线| 天天躁狠狠躁| 91无码视频在线观看| 91亚洲精品第一| 欧美69视频在线| 高清不卡一区二区三区香蕉| 日韩乱码免费一区二区三区| 2022精品国偷自产免费观看| 欧美a级完整在线观看| 69av免费视频| AV熟女乱| 国产AV无码专区亚洲精品网站| 99热国产这里只有精品无卡顿"| 国产农村1级毛片| 久久情精品国产品免费| 91亚洲免费视频| 欧洲在线免费视频| 久久夜夜视频| 久久国产成人精品国产成人亚洲| www.91中文字幕| 激情六月丁香婷婷| 美女黄网十八禁免费看| 亚洲欧美成人| 日韩国产一区二区三区无码| 国产色网站| 国产又粗又猛又爽视频| 91娇喘视频| 青青草原国产av福利网站| 久久动漫精品| 国产理论一区| 精品视频福利| 新SSS无码手机在线观看| 福利视频一区| 亚洲色欲色欲www在线观看| 精品人妻AV区| 内射人妻无码色AV天堂|