精品人妻无码一区二区三区软件 ,麻豆亚洲AV成人无码久久精品,成人欧美一区二区三区视频,免费av毛片不卡无码

您現(xiàn)在的位置是:首頁(yè)計(jì)算機(jī)信息管理論文

數(shù)據(jù)庫(kù)研究期刊論文范文

發(fā)布時(shí)間:2014-01-09 16:02:46更新時(shí)間:2014-01-09 16:03:28 1

  DataSet是ADO.NET的一個(gè)重要組成部分,與以往的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)不同的是,DataSet是一個(gè)不依賴(lài)于數(shù)據(jù)庫(kù)的獨(dú)立數(shù)據(jù)集合。DataSet將從數(shù)據(jù)庫(kù)中檢索到的數(shù)據(jù)存放在內(nèi)存中,即使斷開(kāi)數(shù)據(jù)鏈路或關(guān)閉數(shù)據(jù)庫(kù),DataSet依然能夠被使用,即支持離線(xiàn)訪(fǎng)問(wèn)。

  摘要:DataSet是ADO.NET中的重要組件,它是一個(gè)存在于內(nèi)存中的離線(xiàn)數(shù)據(jù)庫(kù)。與關(guān)系型數(shù)據(jù)庫(kù)類(lèi)似,DataSet支持多張表,可以建立表之間的關(guān)系以及數(shù)據(jù)之間的約束。該文介紹了DataSet的結(jié)構(gòu)及創(chuàng)建表、添加約束、更新數(shù)據(jù)的操作。

  關(guān)鍵詞:DataSet,ADO.NET,數(shù)據(jù)庫(kù)

  使用DataSet進(jìn)行編程,程序員不需理會(huì)不同數(shù)據(jù)庫(kù)之間的差異,因?yàn)闊o(wú)論DataSet中的數(shù)據(jù)來(lái)自于哪里,從它獲得的編程模型是一樣的。而且DataSet的模型與關(guān)系數(shù)據(jù)庫(kù)基本一致,例如它支持多張表、表與表之間的關(guān)系、數(shù)據(jù)之間的約束等。因此在編程時(shí)可以像訪(fǎng)問(wèn)關(guān)系型數(shù)據(jù)庫(kù)一樣訪(fǎng)問(wèn)DataSet。

  1DataSet的結(jié)構(gòu)

  在A(yíng)DO.NET中,DataTable對(duì)象就是一張數(shù)據(jù)表,而DataRelation對(duì)象則是表達(dá)表之間關(guān)系的對(duì)象。DataSet可以看作是內(nèi)存中的離線(xiàn)數(shù)據(jù)庫(kù),它的結(jié)構(gòu)類(lèi)似于關(guān)系型數(shù)據(jù)庫(kù),由DataTableCollection對(duì)象和DataRelationCollection對(duì)象組成,如圖1所示。DataTableCollection對(duì)象用作管理組成DataSet的多個(gè)DataTable對(duì)象,DataRelationCollection對(duì)象則對(duì)各表之間的關(guān)系進(jìn)行管理。

  2在DataSet中創(chuàng)建表

  DataSet中的數(shù)據(jù)表組成了名為T(mén)ables的集合,對(duì)數(shù)據(jù)集中表的各種操作都可以通過(guò)該集合對(duì)象進(jìn)行,如添加表、移除表和清除所有表。在DataSet對(duì)象中添加數(shù)據(jù)表的常見(jiàn)方法有直接創(chuàng)建數(shù)據(jù)表和通過(guò)DataAdapter對(duì)象填充。

  2.1直接創(chuàng)建數(shù)據(jù)表

  直接向DataSet中添加的數(shù)據(jù)表,它沒(méi)有對(duì)應(yīng)的數(shù)據(jù)源,以這種方式創(chuàng)建的數(shù)據(jù)表只存在于內(nèi)存中,對(duì)表中數(shù)據(jù)的修改無(wú)法更新到數(shù)據(jù)庫(kù)。以下以“客戶(hù)表”和“訂單表”為例,在DataSet中直接添加數(shù)據(jù)表的代碼如下:

  上述代碼只是向DataSet對(duì)象添加了兩張空表,表dt1和表dt2并沒(méi)有內(nèi)部結(jié)構(gòu)和數(shù)據(jù),要添加結(jié)構(gòu)和數(shù)據(jù),就得了解DataTable對(duì)象的相關(guān)操作。如圖1所示,DataTable對(duì)象主要由Columns、Rows、Constraints三個(gè)對(duì)象組成,它們分別是列的集合、行的集合、約束的集合。Columns對(duì)象用于定義DataTable數(shù)據(jù)表的架構(gòu),它由若干個(gè)DataColumn對(duì)象組成,負(fù)責(zé)管理數(shù)據(jù)表中的列,如增加列或刪除列。DataColumn列對(duì)象可以定義列名、列的類(lèi)型,這與在關(guān)系型數(shù)據(jù)庫(kù)中定義字段相似,代碼實(shí)現(xiàn)如下:

  在建立列對(duì)象并添加到DataTable數(shù)據(jù)表之后,客戶(hù)表dt1就擁有了字符串類(lèi)型的名為CustID的列和整型的名為CustName的列,即表dt1擁有了自己的架構(gòu)。同理訂單表dt2也可以創(chuàng)建OrderID、OrderTime和CustID三個(gè)列。

  在創(chuàng)建表dt1的架構(gòu)之后,該表依然沒(méi)有存儲(chǔ)任何數(shù)據(jù),要向表中添加數(shù)據(jù),可以通過(guò)DataTable的Rows屬性實(shí)現(xiàn)。Rows屬性是數(shù)據(jù)表中行的集合,它由若干個(gè)數(shù)據(jù)行組成,負(fù)責(zé)對(duì)DataTable中的行進(jìn)行管理。DataRow對(duì)象就是數(shù)據(jù)表中的一行,它用來(lái)創(chuàng)建數(shù)據(jù)行并添加數(shù)據(jù)。給數(shù)據(jù)表dt1添加兩行數(shù)據(jù)的操作如下:

  2.2通過(guò)DataAdapter填充

  雖然可以直接在DataSet中創(chuàng)建數(shù)據(jù)表,但實(shí)際應(yīng)用較少,更常見(jiàn)的是通過(guò)DataAdapter對(duì)象查詢(xún)數(shù)據(jù)庫(kù),向DataSet中創(chuàng)建一個(gè)同結(jié)構(gòu)的數(shù)據(jù)表,將結(jié)果填充其中。實(shí)現(xiàn)如下:

  通過(guò)上述方法創(chuàng)建并填充數(shù)據(jù)的DataTable,它的結(jié)構(gòu)與數(shù)據(jù)源一致。在內(nèi)存中修改表中的數(shù)據(jù)后,可以手動(dòng)更新到數(shù)據(jù)源。

  3添加表間約束和關(guān)系

  約束是數(shù)據(jù)庫(kù)強(qiáng)制用戶(hù)執(zhí)行的規(guī)則,以保證數(shù)據(jù)的完整性。DataSet被認(rèn)為是“內(nèi)存中的數(shù)據(jù)庫(kù)”,因此它同關(guān)系型數(shù)據(jù)庫(kù)一樣,可以設(shè)置主外鍵關(guān)聯(lián),建立表之間的關(guān)系。DataSet通過(guò)Constraint對(duì)象來(lái)實(shí)現(xiàn)約束,可以建立唯一約束和外鍵約束。將客戶(hù)表dt1與訂單表dt2中的“CustID”建立外鍵關(guān)聯(lián)的代碼如下:

  通過(guò)關(guān)系可以從父表的一列獲取子表對(duì)應(yīng)列中所有的行元素,比如從客戶(hù)表dt1中的CustID獲取訂單表dt2中的關(guān)于該客戶(hù)的所有訂單信息。

  4將數(shù)據(jù)更新到數(shù)據(jù)庫(kù)

  由于DataSet對(duì)象存儲(chǔ)于內(nèi)存中,對(duì)該對(duì)象中數(shù)據(jù)的更改并不會(huì)反映到數(shù)據(jù)源中,如果要將DataSet中修改后的數(shù)據(jù)更新到數(shù)據(jù)源,需借助DataAdapter對(duì)象和CommandBuilder對(duì)象。

  DataAdapter不會(huì)自動(dòng)生成實(shí)現(xiàn)DataSet的更改與關(guān)聯(lián)的SQLServer實(shí)例之間協(xié)調(diào)所需的Transact-SQL語(yǔ)句。但是,如果設(shè)置了DataAdapter的SelectCommand屬性,則可以創(chuàng)建一個(gè)CommandBuilder對(duì)象來(lái)自動(dòng)生成用于單表更新的Transact-SQL語(yǔ)句。然后,CommandBuilder將生成其他任何未設(shè)置的Transact-SQL語(yǔ)句,即對(duì)應(yīng)的insert、update、delete語(yǔ)句。下面是將DataSet中數(shù)據(jù)更新到數(shù)據(jù)庫(kù)的代碼:

  5小結(jié)

  DataSet是一個(gè)復(fù)雜而又強(qiáng)大的ADO.NET組件,該文對(duì)DataSet的結(jié)構(gòu)和組成作了簡(jiǎn)要的介紹,通過(guò)實(shí)例分析,對(duì)DataSet的常用操作進(jìn)行了演示,為學(xué)習(xí)和研究數(shù)據(jù)庫(kù)編程提供了很好的參考。

  參考文獻(xiàn)

  [1]陳明忠,江永池.ASP.NET網(wǎng)站開(kāi)發(fā)案例教程[M].北京:清華大學(xué)出版社,2011:119-125.

  [2]陳義輝,沙繼東.企業(yè)級(jí)網(wǎng)站開(kāi)發(fā)項(xiàng)目教程(ASP.NET)[M].北京:中國(guó)人民大學(xué)出版社,2010:102-112.

  [3]陳燕群,張華貴,王海燕.ADO.NET數(shù)據(jù)庫(kù)編程淺析[J].電腦知識(shí)與技術(shù),2012(6):1316-1318.

  [4]高鵬,宋麗芳.NET數(shù)據(jù)庫(kù)操作淺析[J].北京農(nóng)業(yè)職業(yè)學(xué)院學(xué)報(bào),2011,25(3):21-24.

  [5]楊昭兵.基于A(yíng)SP.NET數(shù)據(jù)庫(kù)的操作[J].科技廣場(chǎng),2011(9):94-96.


轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/jisuanjixinxiguanlilw/28836.html