日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
經(jīng)典ADO.NETDataSet技巧總結(jié)

ADO.NET是多種訪問(wèn)數(shù)據(jù)庫(kù)技術(shù)中我最喜歡用的,下面我們就一些編寫(xiě) ADO.NET 代碼時(shí)的通用技巧介紹一下吧,希望大家能記住留著以后編程中使用。

10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有滄州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

避免自動(dòng)增量值沖突

就像大多數(shù)數(shù)據(jù)源一樣,ADO.NET DataSet使您可標(biāo)識(shí)那些添加新行時(shí)自動(dòng)對(duì)其值進(jìn)行遞增的列。在 DataSet 中使用自動(dòng)增量的列時(shí),如果自動(dòng)增量的列來(lái)自數(shù)據(jù)源,可避免添加到 DataSet 的行和添加到數(shù)據(jù)源的行之間本地編號(hào)沖突。

#T#例如,考慮一個(gè)表,它的主鍵列 CustomerID 是自動(dòng)增量的。兩個(gè)新的客戶(hù)信息行添加到表中,并接收到自動(dòng)增量的 CustomerID 值 1 和 2。然后,只有第二個(gè)客戶(hù)行被傳遞給 DataAdapter 的方法 Update,新添加的行在數(shù)據(jù)源接收到一個(gè)自動(dòng)增量的 CustomerID 值 1,與 DataSet 中的值 2 不匹配。當(dāng) DataAdapter 用返回值填充表中第二行時(shí),就會(huì)出現(xiàn)約束沖突,因?yàn)?**個(gè)客戶(hù)行已經(jīng)使用了 CustomerID 值 1。

要避免這種情況,建議在使用數(shù)據(jù)源上自動(dòng)增量的列以及 ADO.NET DataSet 上自動(dòng)增量的列時(shí),把 DataSet 中的列創(chuàng)建為 AutoIncrementStep 值等于 -1 并且 AutoIncrementSeed 值等于 0,另外,還要確保數(shù)據(jù)源生成的自動(dòng)增量標(biāo)識(shí)值從 1 開(kāi)始,并且以正階值遞增。因此,DataSet 為自動(dòng)增量值生成負(fù)數(shù),與數(shù)據(jù)源生成的正自動(dòng)增量值不沖突。另外一個(gè)選擇是使用 Guid 類(lèi)型的列,而不是自動(dòng)增量的列。生成 Guid 值的算法應(yīng)該永遠(yuǎn)不會(huì)使數(shù)據(jù)源中生成的 Guid 值與 DataSet 中生成的 Guid 值一樣。如果自動(dòng)增量的列只是用作唯一值,而且沒(méi)有任何意義,就考慮使用 Guid 代替自動(dòng)增量的列。它們是唯一的,并且避免了使用自動(dòng)增量的列所必需的額外工作。

檢查開(kāi)放式并發(fā)沖突

按照設(shè)計(jì),由于 DataSet 是與數(shù)據(jù)源斷開(kāi)的,所以,當(dāng)多個(gè)客戶(hù)端在數(shù)據(jù)源上按照開(kāi)放式并發(fā)模型更新數(shù)據(jù)時(shí),需要確保應(yīng)用程序避免沖突。在測(cè)試開(kāi)放式并發(fā)沖突時(shí)有幾項(xiàng)技術(shù)。一項(xiàng)技術(shù)涉及在表中包含時(shí)間戳列。另外一項(xiàng)技術(shù)是,驗(yàn)證一行中所有列的原始值是否仍然與通過(guò)在 SQL 語(yǔ)句中使用 WHERE 子句進(jìn)行測(cè)試時(shí)在數(shù)據(jù)庫(kù)中找到的值相匹配。

多線程編程

ADO.NET 對(duì)性能、吞吐量和可伸縮性進(jìn)行優(yōu)化。因此,ADO.NET 對(duì)象不鎖定資源,并且必須只用于單線程。一個(gè)例外是ADO.NET DataSet,它對(duì)多個(gè)閱讀器是線程安全的。但是,在寫(xiě)的時(shí)候需要把 DataSet 鎖定。僅在需要的時(shí)候才用 COM Interop 訪問(wèn) ADO

ADO.NET 的設(shè)計(jì)目的是成為許多應(yīng)用程序的***解決方案。但是,有些應(yīng)用程序需要只有使用 ADO 對(duì)象才有的功能,例如,ADO 多維 (ADOMD)。在這些情況下,應(yīng)用程序可以用 COM Interop 訪問(wèn) ADO。注意使用 COM Interop 訪問(wèn)具有 ADO 的數(shù)據(jù)會(huì)導(dǎo)致性能降低。在設(shè)計(jì)應(yīng)用程序時(shí),首先在實(shí)現(xiàn)用 COM Interop 訪問(wèn) ADO 的設(shè)計(jì)之前,先確定 ADO.NET 是否滿(mǎn)足設(shè)計(jì)需求。


本文名稱(chēng):經(jīng)典ADO.NETDataSet技巧總結(jié)
文章網(wǎng)址:http://m.5511xx.com/article/dhpcooj.html