這篇文章主要講解了“怎么正確操作ADO數(shù)據(jù)庫”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么正確操作ADO數(shù)據(jù)庫”吧!
創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雜多企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,雜多網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
一、要完成本文中的實例,您需要作如下準(zhǔn)備:
將Visual Studio 2008及.NET Framework 3.5升級到SP1。點擊轉(zhuǎn)到升級地址。 安裝SQL SERVER 2005,VS 2008中自帶的EXPRESS版的SQL SERVER應(yīng)該也可以用。 下載并附加數(shù)據(jù)庫:點擊下載DemoDbV2。 創(chuàng)建一個VB Console Application,并且取一個合適的名字(例如:Concurrency之類的)。注意,目標(biāo)Framework要設(shè)置成3.5版。
二、什么是并發(fā)沖突
讓我們來看一個跟取款相關(guān)的例子:某年某月某日某時某分,ADO數(shù)據(jù)庫老王在A取款機(jī)取錢,他兒子小王同時在B取款機(jī)取錢(不要問我為什么這么巧^_^),他倆從同一個賬號上取。于是就發(fā)生了如下一序列的操作:
A取款機(jī)向中央數(shù)據(jù)庫提問:這賬上還有多少錢?
B取款機(jī)向中央數(shù)據(jù)庫詢問:這賬上還有多少錢? 中央數(shù)據(jù)庫回答A取款機(jī):2W,中央數(shù)據(jù)庫回答B(yǎng)取款機(jī):2W,然后,ADO數(shù)據(jù)庫老王對A取款機(jī)說:我要取出1.5W。 同時,小王對B取款機(jī)說:我要取出1.8W。
分析ADO.NET操作設(shè)置有效說明介紹
進(jìn)行ADO.NET數(shù)據(jù)庫具體操作分析
新建選擇ADO.NET Entity 項目進(jìn)行詳細(xì)剖
專家簡介ADO.NET Entity Framework對象關(guān)
進(jìn)行下一代的ADO.NET圖示說明
A取款機(jī)就算了一下,2W-1.5W=0.5W>0,于是就吐出1.5W現(xiàn)金給了老王,并且準(zhǔn)備告訴中央數(shù)據(jù)庫,現(xiàn)在還剩0.5W啦。但是,就在它告訴中央數(shù)據(jù)庫之前,發(fā)生了以下的事情:
B取款機(jī)計算了一下,2W(此時,它還不知道余額已經(jīng)成0.5W了,因為A取款機(jī)還沒有告訴中央數(shù)據(jù)庫)減去1.8W等于0.2W大于0,于是就吐出1.8W現(xiàn)金給了小王。然后,ADO數(shù)據(jù)庫當(dāng)然也要知會中央數(shù)據(jù)庫。
中央數(shù)據(jù)庫于是收到A取款機(jī)的消息,說,這個賬號還剩0.5W,于是刷新余額為0.5W。然后又收到B取款機(jī)說還剩0.2W,于是,就刷新余額為0.2W。 呵呵,于是,小王+老王的賬戶里一共存有2W元,結(jié)果老王取了1.5W元,小王取了1.8W元,賬戶里卻還剩了0.2W元。
這就是一種并發(fā)沖突,由于同一時間有兩個或者多個端在對同一數(shù)據(jù)進(jìn)行操作,ADO數(shù)據(jù)庫從而導(dǎo)致數(shù)據(jù)發(fā)生了錯誤。如果取款機(jī)真的以這樣的方式來處理并發(fā),那么,我現(xiàn)在就不寫這片文章了——趕緊發(fā)動全家對表,說好了在某一時刻同時取錢去。
感謝各位的閱讀,以上就是“怎么正確操作ADO數(shù)據(jù)庫”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么正確操作ADO數(shù)據(jù)庫這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!