了解ADO.NET數(shù)據(jù)繁瑣相關(guān)運(yùn)作
雖然有許多人對ADO.NET數(shù)據(jù)的安全性表示懷疑,但在年復(fù)一年的不斷發(fā)展中,他的安全性也在不斷提高。保障ADO.NET數(shù)據(jù)的安全性是完全有可能的,但前提是要深入理解到底什么是ADO.NET數(shù)據(jù),及他是怎么運(yùn)作的。
Recordset和數(shù)據(jù)的提供者有關(guān):有些數(shù)據(jù)提供者不支持一些recordset的方法和特性。相反,ADO.NET數(shù)據(jù)的不同方法例如查詢、排序、篩選和更新等等,都是獨(dú)立于數(shù)據(jù)提供者的。當(dāng)新版本的ADO允許recordset被保存或轉(zhuǎn)換到XML以至于數(shù)據(jù)能被傳遞到應(yīng)用程序里和越過防火墻,DataSet則不需要轉(zhuǎn)換就能完成相同的任務(wù),因?yàn)镈ataSet在XML中被聲明過。
Recordset是非類型的,意思是它把每個數(shù)據(jù)作為variant變量來存儲。然而,ADO.NET數(shù)據(jù)是強(qiáng)類型的,ADO.NET數(shù)據(jù)把數(shù)據(jù)按照原來的類型存儲。強(qiáng)類型意味著更規(guī)范的編程方式和減少錯誤。
通過ADO的recordset來更新數(shù)據(jù)庫是繁瑣的、低效率的和低成功率的。舉個例子,如果有五十個記錄要被更新,還有一個記錄不能被更新,數(shù)據(jù)庫將拒絕整個recordset。這個問題在DataSet中就不存在,因?yàn)镈ataSet能通過它的rowerror特性來一行一行的捕捉錯誤。除了數(shù)據(jù),DataSet也能被增加或修改其關(guān)系、列、表和類似對象,而且不需要多重的數(shù)據(jù)庫連接。
***,在recordset中,通常用循環(huán)的辦法來取出數(shù)據(jù)。在DataSet中,數(shù)據(jù)視圖被創(chuàng)建并綁定到服務(wù)器控件上,因此,ADO.NET數(shù)據(jù)可以不需要混合表示和數(shù)據(jù)存取代碼就能表示數(shù)據(jù)。這是很簡潔的編程方式。#t#
總之,DataSet和recordset是完全不相同的。ADO.NET數(shù)據(jù)可以理解為是一種升級的recordset。在沒有對ADO.NET的DataSet和ADO的recordset進(jìn)行性能上的測試和比較時(shí),綜上所述,DataSet應(yīng)該是比較有效的。
導(dǎo)讀:在ADO中我們最常使用的對象就Recordset了,而在ADO.NET數(shù)據(jù)中又增加了一個對象DataSet。本文簡要的對比了DateSet和Recordset的異同,這對ADO.NET的初學(xué)者非常有幫助!