新聞中心
ADO DataSet的結(jié)構(gòu)允許基于查詢返回的結(jié)果創(chuàng)建Recordset。數(shù)據(jù)訪問引擎會(huì)檢查結(jié)果集中的數(shù)據(jù)列,并根據(jù)該信息填充Recordset對(duì)象的Fields集合,設(shè)置名稱、數(shù)據(jù)類型等。下面進(jìn)行相關(guān)說明。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。
可以使用少數(shù)代碼行,讓ADO.NET自動(dòng)檢查結(jié)果的結(jié)構(gòu);也可以使用較多代碼,其中包含了有關(guān)查詢結(jié)果結(jié)構(gòu)的元數(shù)據(jù)。
那么為什么要選擇需要編寫較多代碼的選項(xiàng)呢?最主要的優(yōu)點(diǎn)就在于其功能性更強(qiáng)、性能更佳。但是代碼較多時(shí)又怎么會(huì)使應(yīng)用程序的運(yùn)行速度更快呢?這似乎有悖于人們的直覺感受,不是嗎?
除非您正編寫一個(gè)專用查詢工具,否則您通常事先就知道查詢結(jié)果的結(jié)構(gòu)形式。例如,大多數(shù)ADO DataSet的結(jié)構(gòu)形式都與下例相似。Dim rs as Recordset'在此處聲明其他變量…初始化變量并與數(shù)據(jù)庫建立連接:
- rs.Open strSQL, cnDatabase, adOpenStatic, adLockOptimistic, adCmdText
- Do While Not rs.EOF
- List1.AddItem rs.Fields("UserName").Value
- rs.MoveNext
- Loop
在此代碼段中,編程人員知道該查詢包含一個(gè)名為UserName的列。關(guān)鍵就在于一個(gè)開發(fā)人員通常都知道查詢會(huì)返回哪些列,以及這些列使用何種數(shù)據(jù)類型。但是ADO并不能事先了解查詢結(jié)果的形式。結(jié)果,ADO必須對(duì)OLE DB提供程序進(jìn)行查詢,提出諸如“查詢的結(jié)果中有多少列?
”,“這些列中每一列的數(shù)據(jù)類型是什么?”,“這些數(shù)據(jù)來自何方?”和“該查詢中所引用的每個(gè)表的主鍵字段是什么?”等問題。OLE DB提供程序可以回答這些問題中的一部分,但是很多時(shí)候它都必須回調(diào)數(shù)據(jù)庫。#t#
為獲取查詢結(jié)果,并且將該數(shù)據(jù)存儲(chǔ)在DataSet對(duì)象中,ADO DataSet的結(jié)構(gòu)需要知道此類問題的答案。您可以自己提供這些信息,也可以強(qiáng)制ADO.NET從提供程序獲取信息。當(dāng)選擇自己提供信息時(shí),代碼的運(yùn)行速度就能加快,這是因?yàn)椋号c通過代碼提供元數(shù)據(jù)相比,在運(yùn)行時(shí)向提供程序詢問此信息會(huì)使性能大幅降低。
盡管通過編寫代碼來準(zhǔn)備ADO DataSet的結(jié)構(gòu)可以提高應(yīng)用程序的性能,但編寫代碼可能非常沉悶乏味。幸運(yùn)的是,Visual Studio包含了設(shè)計(jì)時(shí)數(shù)據(jù)訪問特性,這些特性為我們綜合了兩者***秀的性能。
例如,您可以創(chuàng)建一個(gè)基于查詢、表名稱或存儲(chǔ)過程的DataSet對(duì)象,然后配置向?qū)Ь蜁?huì)生成ADO.NET代碼,來運(yùn)行此查詢,并支持將更新提交給數(shù)據(jù)庫。在下面的章節(jié)中將會(huì)詳細(xì)討論許多此類Visual Studio特性。
本文標(biāo)題:大致說明ADODataset的結(jié)構(gòu)進(jìn)行學(xué)習(xí)切磋
文章地址:http://www.5511xx.com/article/coopcop.html


咨詢
建站咨詢
