新聞中心
ADO.NET命令真正的進(jìn)步源自數(shù)據(jù)集這一概念的提出,在ADO中不存在與ADO.NET DataSet類似的對(duì)象。雖然我們無(wú)法從這個(gè)例子看出DataSet對(duì)象的重要性,但從體系結(jié)構(gòu)上說(shuō),DataSet對(duì)象處于一個(gè)不同的層次。它允許我們?cè)谕粋€(gè)邏輯對(duì)象的組織之下管理多個(gè)表,

成都創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開(kāi)發(fā)建設(shè)經(jīng)驗(yàn),1000+客戶的共同信賴。提供網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站開(kāi)發(fā)、網(wǎng)站定制、買(mǎi)鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
修改數(shù)據(jù)
以脫機(jī)方式工作時(shí),我們對(duì)數(shù)據(jù)的添加、修改、刪除等更新操作在內(nèi)存緩沖中進(jìn)行。因此,如果你利用NewRow添加了新的記錄,或者利用某個(gè)簡(jiǎn)單的工具編輯現(xiàn)有的行,這些更新只在內(nèi)存中進(jìn)行,不影響底層的數(shù)據(jù)源。更新操作在我們從Command對(duì)象調(diào)用Update方法提交更改的時(shí)候發(fā)生。Update方法為數(shù)據(jù)集中每個(gè)被插入、ADO.NET命令修改、刪除的行分別調(diào)用Insert、Update和Delete命令。
我們可以利用ADO.NET命令的InsertCommand、UpdateCommand和DeleteCommand屬性,指定面向特定數(shù)據(jù)源的命令,插入、修改或刪除記錄。這些屬性的內(nèi)容和我們所要操作的數(shù)據(jù)提供者有關(guān),但是,如果數(shù)據(jù)提供者是一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),屬性的內(nèi)容很可能就是SQL命令字符串。當(dāng)Update方法執(zhí)行時(shí),如果這些屬性還沒(méi)有設(shè)置好,但DataSet對(duì)象包含了主鍵信息,那么,ADO.NET將自動(dòng)生成命令文本。#t#
我建議,只有當(dāng)應(yīng)用程序要求讀取一定數(shù)量的記錄并進(jìn)行修改,而且修改的次序和數(shù)量不可預(yù)測(cè)時(shí),才使用這種插入、更改、刪除記錄的方法。ADO.NET命令如果應(yīng)用程序的用戶界面只是要求填寫(xiě)幾個(gè)字段,然后插入或更新記錄,那么,執(zhí)行SQL語(yǔ)句或存儲(chǔ)過(guò)程是更理想的方法。
設(shè)置了關(guān)系之后,ADO.NET將拒絕所有破壞該關(guān)系的數(shù)據(jù)集改動(dòng)操作,并產(chǎn)生一個(gè)運(yùn)行時(shí)異常。在遍歷表的記錄時(shí),調(diào)用GetChildRows方法可以從已連接的表訪問(wèn)所有相關(guān)的行。GetChildRows方法返回一個(gè)DataRow對(duì)象的數(shù)組,這是一種新的分層式記錄導(dǎo)航方式,而傳統(tǒng)的記錄導(dǎo)航方式屬于順序模式或隨機(jī)模式。
關(guān)系是不可傳遞的。ADO.NET命令假設(shè)表A關(guān)聯(lián)到表B,表B又關(guān)聯(lián)到表C的一些行。另外,假設(shè)在遍歷表A記錄的時(shí)候,對(duì)于每一個(gè)表A的記錄,我們要訪問(wèn)現(xiàn)有關(guān)系中的子記錄。如果我們想要訪問(wèn)對(duì)應(yīng)表B中特定記錄的表C記錄,那么,我們不能使用由A-B的關(guān)系得到的表B的ADO.NET命令;相反,我們必須從表B打開(kāi)一個(gè)新的表視圖,找到我們想要的特定記錄,然后通過(guò)表B對(duì)表C的關(guān)系調(diào)用GetChildRows方法。
標(biāo)題名稱:利用ADO.NET命令進(jìn)行使用介紹
分享鏈接:http://m.fisionsoft.com.cn/article/ccoihjs.html


咨詢
建站咨詢
