進(jìn)行ADO.NET對(duì)象操作步驟
ADO.NET對(duì)象對(duì)于速度是很好用的,如果你要修改操作技巧,更好的辦法是使用DataSet,.Net平臺(tái)程序是ADO.NET對(duì)象的常用的類,下面就進(jìn)行詳細(xì)說明ADO.NET對(duì)象使用問題。
所以DataSet類在ADO.NET中具有特殊的地位,是因?yàn)镈ataSet在ADO.NET實(shí)現(xiàn)從數(shù)據(jù)庫抽取數(shù)據(jù)中起到關(guān)鍵作用,在從數(shù)據(jù)庫完成數(shù)據(jù)抽取后,DataSet就是數(shù)據(jù)的存放地,它是各種數(shù)據(jù)源中的數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中映射成的緩存,所以有時(shí)說DataSet可以看成是一個(gè)數(shù)據(jù)容器。同時(shí)它在客戶端實(shí)現(xiàn)讀取、更新數(shù)據(jù)庫等過程中起到了中間部件的作用(DataReader只能檢索數(shù)據(jù)庫中的數(shù)據(jù))。
各種.Net平臺(tái)開發(fā)語言開發(fā)數(shù)據(jù)庫應(yīng)用程序,一般并不直接對(duì)數(shù)據(jù)庫操作(直接在程序中調(diào)用存儲(chǔ)過程等除外),而是先完成數(shù)據(jù)連接和通過數(shù)據(jù)適配器填充DataSet對(duì)象,然后客戶端再通過讀取DataSet來獲得需要的數(shù)據(jù),同樣更新數(shù)據(jù)庫中數(shù)據(jù),也是首先更新ADO.NET對(duì)象,然后再通過DataSet來更新數(shù)據(jù)庫中對(duì)應(yīng)的數(shù)據(jù)的。可見了解、掌握ADO.NET,首先必須了解、掌握DataSet。DataSet主要有三個(gè)特性:
1. 獨(dú)立性。DataSet獨(dú)立于各種數(shù)據(jù)源。微軟公司在推出DataSet時(shí)就考慮到各種數(shù)據(jù)源的多樣性、復(fù)雜性。在.Net中,無論什么類型數(shù)據(jù)源,它都會(huì)提供一致的關(guān)系編程模型,而這就是DataSet。
2. 離線(斷開)和連接。ADO.NET對(duì)象既可以以離線方式,也可以以實(shí)時(shí)連接來操作數(shù)據(jù)庫中的數(shù)據(jù)。這一點(diǎn)有點(diǎn)像ADO中的RecordSet。
3. DataSet對(duì)象是一個(gè)可以用XML形式表示的數(shù)據(jù)視圖,是一種數(shù)據(jù)關(guān)系視圖。
一.DataSet對(duì)象的結(jié)構(gòu)模型及和RecordSet的比較#t#
雖說ADO.NET是 ADO在.Net平臺(tái)下得后繼版本,但二者的區(qū)別是很大的。突出表現(xiàn)在ADO中的RecordSet對(duì)象和ADO.NET中的DataSet對(duì)象。RecordSet其實(shí)也是非常靈活的一個(gè)對(duì)象,微軟公司推出它也是煞費(fèi)苦心,如:RecordSet可以離線操作數(shù)據(jù)庫,性能優(yōu)良,效率較高等等這些都讓當(dāng)時(shí)的程序員為之一振。
RecordSet雖然已經(jīng)很復(fù)雜,但ADO.NET對(duì)象卻比RecordSet復(fù)雜的多,我們知道每一DataSet往往是一個(gè)或多個(gè)DataTable 對(duì)象的集合,這些對(duì)象由數(shù)據(jù)行和數(shù)據(jù)列以及主鍵、外鍵、約束和有關(guān)DataTable對(duì)象中數(shù)據(jù)的關(guān)系信息組成。而RecordSet只能存放單張數(shù)據(jù)表,雖然這張數(shù)據(jù)表可以由幾張數(shù)據(jù)表JOIN生成。所以有些時(shí)候說,RecordSet更類似于DataSet中的DataTable。DataSet對(duì)象的結(jié)構(gòu)模型。