自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VB.NET數(shù)據(jù)并發(fā)性具體處理方式

開發(fā) 后端
VB.NET數(shù)據(jù)并發(fā)性出現(xiàn)異常在程序開發(fā)中是比較常見的。我們今天將會對此做一個詳細(xì)的介紹,已解決大家出現(xiàn)的各種問題。

VB.NET語言和其他語言一樣,同樣需要在程序開發(fā)中進(jìn)行一些異常處理,以保證程序的順利運(yùn)行。那么在這里大家就可以通過對VB.NET數(shù)據(jù)并發(fā)性的異常處理來對這一機(jī)制進(jìn)行一個深入的了解。#t#

ADO.NET為提高數(shù)據(jù)密集型(data-intensive)應(yīng)用程序的性能、簡化這類程序的建立過程提供了多種技術(shù)。數(shù)據(jù)集(DataSet)作為ADO.net對象模型的標(biāo)志,作為一個微型的、不連接(disconnected)的數(shù)據(jù)源的副本提供服務(wù)。

雖然使用數(shù)據(jù)集通過減少對數(shù)據(jù)庫服務(wù)器的高花費(fèi)的訪問而提高了性能,但是它也帶來了多個用戶試圖同時訪問相同數(shù)據(jù)的可能性,由此引起數(shù)據(jù)并發(fā)性異常(dataconcurrencyexception)。本文調(diào)查了數(shù)據(jù)并發(fā)性異常背后的通常起因,介紹了解決這些問題的技術(shù)。

把數(shù)據(jù)訪問層升級到ADO.NET有很多好處,其中之一是使用內(nèi)部數(shù)據(jù)集對象。數(shù)據(jù)集對象基本上是一個不連接的、內(nèi)存中的數(shù)據(jù)庫的拷貝。數(shù)據(jù)集對象包含一個或者多個數(shù)據(jù)表(DataTable),每個數(shù)據(jù)表一般對應(yīng)于數(shù)據(jù)庫中的一個表。

數(shù)據(jù)集提供了很多好處,但也帶來一些問題,特別是可能遇到與VB.NET數(shù)據(jù)并發(fā)性異常相關(guān)的問題。我建立了一個簡單的WindowsForms顧客服務(wù)應(yīng)用程序,用它來解釋該問題的潛在的缺陷。本文我將介紹該應(yīng)用程序并演示怎樣解決它所引起的VB.NET數(shù)據(jù)并發(fā)性問題。

本文建立的顧客服務(wù)應(yīng)用程序示例是使用VisualBasic.NET和SQLServer2000建立的,但是由于微軟.NET框架組件是語言無關(guān)(language-agnostic)的,因此任何與.NET框架組件兼容的語言都可以使用。同樣,由于數(shù)據(jù)集對象抽象了數(shù)據(jù)源,數(shù)據(jù)源的實際執(zhí)行并不重要;無論下層的數(shù)據(jù)源是SQLServer、本地XML文件或者從一個服務(wù)中檢索到的數(shù)據(jù),數(shù)據(jù)并發(fā)性異常同樣會出現(xiàn)。

 

數(shù)據(jù)集的利弊

數(shù)據(jù)集提供了很多好處,例如比起數(shù)據(jù)庫層次,它強(qiáng)化了內(nèi)存中的完整性規(guī)則。數(shù)據(jù)集對象可以定義和強(qiáng)化表之間的關(guān)系和列的約束,確保使用的商業(yè)規(guī)則對數(shù)據(jù)庫沒有缺陷。通過數(shù)據(jù)庫抽象,你能建立單個代碼集合訪問數(shù)據(jù)集對象而不必考慮填充該數(shù)據(jù)集的源數(shù)據(jù)。下層的數(shù)據(jù)源也許是SQLServer、Oracle甚至XML文件。無論下層數(shù)據(jù)源是什么,代碼使用相同的方法與數(shù)據(jù)集交互。這使你能改變下層數(shù)據(jù)源而不改變代碼。

但是使用數(shù)據(jù)集的最大好處是提高了性能。因為數(shù)據(jù)集與下層數(shù)據(jù)庫斷開,代碼將更少作數(shù)據(jù)庫的調(diào)用,顯著地提高了性能。你能向數(shù)據(jù)集的多個數(shù)據(jù)表中添加新行、驗證每行的有效性和參照完整性。數(shù)據(jù)適配器(DataAdapter)把數(shù)據(jù)集連接到下層數(shù)據(jù)庫,能使用一條命令更新下層數(shù)據(jù)庫。每個表中的所有新行都使用命令加入,以確保所有添加到數(shù)據(jù)庫的行都是有效的。

性能的最優(yōu)化是有代價的。因為數(shù)據(jù)集對象與下層數(shù)據(jù)庫斷開,經(jīng)常有機(jī)會出現(xiàn)數(shù)據(jù)沒有超期(outofdate)的情況。因為數(shù)據(jù)集不保存活動數(shù)據(jù),只保存當(dāng)時填充數(shù)據(jù)集的活動數(shù)據(jù)的一個快照,與數(shù)據(jù)并發(fā)性相關(guān)的問題就會出現(xiàn)。

數(shù)據(jù)并發(fā)性問題出現(xiàn)在多個用戶訪問相同的數(shù)據(jù)并且任何一個用戶沒有其它用戶的信息就能更新數(shù)據(jù)。這就出現(xiàn)了一個用戶偶然更新數(shù)據(jù)而不知道那些數(shù)據(jù)已經(jīng)改變了,不是他在程序中看到的了。幸運(yùn)的是數(shù)據(jù)集對象擁有捕獲VB.NET數(shù)據(jù)并發(fā)性問題的內(nèi)建(built-in)支持,因此應(yīng)用程序能正確地作出反應(yīng)。

責(zé)任編輯:曹凱 來源: mscto.com
相關(guān)推薦

2010-01-13 17:23:36

VB.NET動態(tài)事件

2010-01-18 16:58:29

VB.NET Over

2010-01-07 17:57:22

VB.NET構(gòu)造函數(shù)

2010-01-15 13:30:37

VB.NET并發(fā)性

2010-01-11 17:40:36

VB.NET相框效果

2010-01-22 17:12:08

VB.NET訪問Ifr

2010-01-20 17:41:13

VB.NET標(biāo)記語句

2010-01-12 18:12:58

VB.NET事件

2010-01-21 17:58:40

VB.NET List

2010-01-13 09:45:53

VB.NET Arra

2010-01-11 17:05:32

VB.NET操作文本文

2010-01-14 15:15:22

VB.NET數(shù)據(jù)行處理

2010-01-22 15:37:02

VB.NET監(jiān)控類

2010-01-21 17:48:25

VB.NET Sing

2009-10-14 16:46:25

VB.NET OnSt

2010-01-15 16:21:45

VB.NET讀寫文本文

2010-01-19 13:36:16

VB.NET可選參數(shù)

2010-01-12 17:49:03

VB.NET鍵盤輸入

2010-01-07 15:49:10

VB.NET DoLoop

2010-01-19 18:52:08

VB.NET處理數(shù)據(jù)行
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號