溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ADO.NET數(shù)據(jù)集類型有哪些

發(fā)布時間:2021-12-03 15:25:53 來源:億速云 閱讀:100 作者:iii 欄目:編程語言

這篇文章主要講解了“ADO.NET數(shù)據(jù)集類型有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ADO.NET數(shù)據(jù)集類型有哪些”吧!

ADO.NET數(shù)據(jù)集類型分為類型化數(shù)據(jù)集和非類型化數(shù)據(jù)集,關于對他們的描述請參見圖所示:

ADO.NET數(shù)據(jù)集類型有哪些

 

ADO.NET數(shù)據(jù)集類型圖


使用類型化數(shù)據(jù)集訪問列,參見如下代碼:

  1. string employeeName;  

  2. employeeName = dsEmployees.Emp[0].EmpName; 

從dsEmployees數(shù)據(jù)集的Emp表中***個記錄返回EmpName列,然后將其存儲在employeeName字符串變量中。使用非類型化數(shù)據(jù)集訪問列 ,參見如下代碼:

string employeeName;  employeeName = dsEmployees.Tables["Emp"].Rows[0]["EmpName"];

使用Tables集合返回EmpName列。

小知識:

typed DataSet和untyped DataSet

typed DataSet是從DataSet派生的,它根據(jù)事先定義的Data Schema生成數(shù)據(jù)集,對數(shù)據(jù)集中的字段實行強類型約束。你可以通過它產(chǎn)生的cs文件看到許多方法對DataTable的操作進行了封裝,這樣你就可以通過MyDataSet.MyTable.Field對字段進行訪問,而不是像DataSet那樣:
MyDataSet.Tables["TableName"]["Field"]; 簡化了編程,同時不容易出錯,想象一下如果在"Field"中拼錯了字段名,那么編譯器也不會檢查出來,對于typed DataSet就不用了,如果你Field寫錯的話,那么馬上就可以知道。

還有就是如果你在Typed DataSet包含多數(shù)據(jù)集,同時在XSD中對這些數(shù)據(jù)集建立關系和約束,那么Type DataSet會生成相應的方法來反映這些關系和約束。如果使用untyped DataSet,你需要自己做。 性能上的考慮:雖然Typed DataSet創(chuàng)建對象實例的時候比unTypede DataSet要多一些開銷(時間和空間),但是在填充數(shù)據(jù)的時候要比untyped DataSet快,這是因為DataAdapter已經(jīng)知道怎么Fill一個Typed DataSet,相比之下,DataSet需要兩次讀取數(shù)據(jù)庫,***次取得數(shù)據(jù)庫中表的結(jié)構(gòu)信息,第二次才fill數(shù)據(jù)。

Typed DataSet相對于DataSet的缺陷:除了創(chuàng)建的開銷之外,Typed DataSet不如DataSet靈活,因為Typed DataSet一旦確定,數(shù)據(jù)表的結(jié)構(gòu)就固定了,如果需要修改,必須重新生成。而DataSet你可以隨時根據(jù)需要進行操作(比如添加字段,刪除字段等)。

感謝各位的閱讀,以上就是“ADO.NET數(shù)據(jù)集類型有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對ADO.NET數(shù)據(jù)集類型有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI