這篇文章將為大家詳細(xì)講解有關(guān)VB.NET數(shù)據(jù)集的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都宣傳片制作小微創(chuàng)業(yè)公司專業(yè)提供企業(yè)網(wǎng)站制作營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
1.基本概念
VB.NET數(shù)據(jù)集是一種離線了的緩存存儲(chǔ)數(shù)據(jù),它的結(jié)構(gòu)和數(shù)據(jù)庫(kù)一樣,具有表格、行、列的一種層次結(jié)構(gòu),另外還包括了為數(shù)據(jù)集所定義的數(shù)據(jù)間的約束和關(guān)聯(lián)關(guān)系。
用戶可通過(guò).NEt框架的命名空間(NameSpace)來(lái)創(chuàng)建和操作數(shù)據(jù)集。
用戶可以通過(guò)一些諸如屬性(properties)、集合(collections)這些標(biāo)準(zhǔn)的構(gòu)成來(lái)了解Dataset這個(gè)概念。如:
(1)數(shù)據(jù)集(DataSet)包括數(shù)據(jù)表格的Tables這個(gè)集合以及relation的"Relations"集合。
(2)DataTable類包括了數(shù)據(jù)表格row的"Rows"集合,數(shù)據(jù)columns的"Column"集合,以及數(shù)據(jù)relation的"ChildRelations"和"ParentRelations"集合。
(3)DataRow類包括"RowState"屬性,這些值是用來(lái)顯示數(shù)據(jù)表格***從數(shù)據(jù)庫(kù)被加載后是否被修改過(guò),這個(gè)屬性的值可以為:"Deleted"、"Modified"、"New"以及"Unchanged"。
2.定義(Type)和未定義(Untyped)的VB.NET數(shù)據(jù)集
數(shù)據(jù)集有定型的和未定型的之分,定型的數(shù)據(jù)集是基本的DataSet類的一個(gè)子類,并且含有圖表(.xsd文件),它用來(lái)描述數(shù)據(jù)集所擁有的表格的結(jié)構(gòu)。這些圖表文件,包括了表的名字和列名、列所代表的數(shù)據(jù)的類型信息,以及數(shù)據(jù)間的約束關(guān)系。而一個(gè)未定型的數(shù)據(jù)集則沒有這些圖表的描述。
在程序中用戶可以使用任意兩種類型的數(shù)據(jù)集,然而,定型的數(shù)據(jù)集可以使得用戶對(duì)數(shù)據(jù)的操作更加明了,并且可以減少一些不必要的錯(cuò)誤,定型的數(shù)據(jù)集可以生成一些對(duì)象模型,這些模型的***層次的類(first-class)就是數(shù)據(jù)集所包含的表和列,假設(shè)用戶正在對(duì)一個(gè)定型的數(shù)據(jù)集進(jìn)行操作,則可以用如下的語(yǔ)法來(lái)指向一個(gè)列。
'指向表titles***行的title_id列 s=dsPub1.titles(0).title_id
但是如果用戶是在操作一個(gè)未定型的數(shù)據(jù)集的話,就需要這樣編寫代碼了:
'指向表titles***行的title_id列
s=dsPubs1.Tables("titles")
(0).Columns(title_id")
使用定型類不但可以使代碼編制起來(lái)更加容易,而且,這種定型類的語(yǔ)法還為用戶提供了檢查代碼正確與否的功能,減少了在指向數(shù)據(jù)集成員值時(shí)代碼的錯(cuò)誤率。
3.關(guān)系表(Related Tables)和關(guān)系對(duì)象(Related Objects)
如果VB.NET數(shù)據(jù)集中包含了多張表,這些表之間可能具有相關(guān)聯(lián)的關(guān)系,然而,數(shù)據(jù)集不象數(shù)據(jù)庫(kù),它并沒有關(guān)于關(guān)聯(lián)關(guān)系的相關(guān)信息,所以當(dāng)用戶在處理關(guān)系表的時(shí)候,可以創(chuàng)建一些關(guān)聯(lián)(relations)來(lái)描述這些在數(shù)據(jù)集中各個(gè)表之間的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系可以通過(guò)一些代碼,人為地從父行(parent rows)到相關(guān)的子行(child rows)。或者從子行再返回到父行。
因?yàn)槊總€(gè)老師不可能只教一門課,所以在課程描述表和教員表之間就存在一種一對(duì)多的關(guān)系。舉一個(gè)例子,假設(shè)教師i777(李四)教2門課,則可以用數(shù)據(jù)的關(guān)聯(lián)(data relations)把一個(gè)數(shù)據(jù)表的某個(gè)特指的行指向另外一個(gè)數(shù)據(jù)表的一個(gè)列,這樣就可以在這兩個(gè)表之間雙向地進(jìn)行查詢導(dǎo)航,例如,用戶可以從一行描述張三教師的行,瀏覽到描述它教的課這一行,反之,也可以從描述課程Science999(生物)的行瀏覽到描述教這門課的教師張三的這一行。
4.更新VB.NET數(shù)據(jù)集和數(shù)據(jù)存儲(chǔ)
當(dāng)用戶改變數(shù)據(jù)集中的數(shù)據(jù)時(shí),這些改變將要被重新寫回到數(shù)據(jù)庫(kù)中,類"DataRow"是用來(lái)對(duì)單獨(dú)的記錄進(jìn)行操作的,其中它包括屬性"RowState",它的值是用來(lái)表示自從數(shù)據(jù)從數(shù)據(jù)庫(kù)中***次被調(diào)用以后,行是怎樣變化的,該屬性的值可以為:"Deleted"、"Modified"、"New"以及"Unchanged"。
為了把這些數(shù)據(jù)集的變化寫回到數(shù)據(jù)庫(kù)中,用戶可以調(diào)用方法"Update",這個(gè)方法將會(huì)訪問"RowState"的屬性值,并且決定怎樣對(duì)數(shù)據(jù)庫(kù)進(jìn)行一系列的操作,如add,edit,delete,將都會(huì)被運(yùn)行。
關(guān)于“VB.NET數(shù)據(jù)集的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
本文題目:VB.NET數(shù)據(jù)集的示例分析
網(wǎng)頁(yè)路徑:http://aaarwkj.com/article14/gjgjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、關(guān)鍵詞優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、App開發(fā)、ChatGPT、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)