国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ADO.Net與ADO在數(shù)據(jù)內(nèi)存中的差異討論

2024-07-10 13:04:39
字體:
供稿:網(wǎng)友

  數(shù)據(jù)的內(nèi)存中表示形式

  在 ado 中,數(shù)據(jù)的內(nèi)存中表示形式為記錄集。在 ado.net 中,它為數(shù)據(jù)集。它們之間有重要的差異。

  表的個數(shù)

  記錄集看起來像單個表。如果記錄集將包含來自多個數(shù)據(jù)庫表的數(shù)據(jù),則它必須使用 join 查詢,將來自各個數(shù)據(jù)庫表的數(shù)據(jù)組合到單個結(jié)果表中。

  相反,數(shù)據(jù)集是一個或多個表的集合。數(shù)據(jù)集內(nèi)的表稱為數(shù)據(jù)表;明確地說,它們是 datatable 對象。如果數(shù)據(jù)集包含來自多個數(shù)據(jù)庫表的數(shù)據(jù),它通常將包含多個 datatable 對象。即,每個 datatable 對象通常對應(yīng)于單個數(shù)據(jù)庫表或視圖。這樣,數(shù)據(jù)集可以模仿基礎(chǔ)數(shù)據(jù)庫的結(jié)構(gòu)。

  數(shù)據(jù)集通常還包含關(guān)系。數(shù)據(jù)集內(nèi)的關(guān)系類似于數(shù)據(jù)庫中的外鍵關(guān)系,即它使多個表中的行彼此關(guān)聯(lián)。例如,如果數(shù)據(jù)集包含一個有關(guān)投資者的表和另一個有關(guān)每個投資者的股票購買情況的表,則數(shù)據(jù)集可能還包含一個關(guān)系來連接投資者表的各個行和購買表的對應(yīng)行。

  由于數(shù)據(jù)集可以保存多個獨(dú)立的表并維護(hù)有關(guān)表之間關(guān)系的信息,因此它可以保存比記錄集豐富得多的數(shù)據(jù)結(jié)構(gòu),包括自關(guān)聯(lián)的表和具有多對多關(guān)系的表。

  數(shù)據(jù)導(dǎo)航和游標(biāo)

  在 ado 中,您使用 ado movenext 方法順序掃描記錄集的行。在 ado.net 中,行表示為集合,因此您可以像依次通過任何集合那樣依次通過表,或通過序號索引或主鍵索引訪問特定行。datarelation 對象維護(hù)有關(guān)主記錄和詳細(xì)資料記錄的信息,并提供方法使您可以獲取與正在操作的記錄相關(guān)的記錄。例如,從 investor 表的“nate sun”的行開始,可以定位到 purchase 表中描述其購買情況的那組行。

  “游標(biāo)”是數(shù)據(jù)庫元素,它控制記錄導(dǎo)航、更新數(shù)據(jù)的能力和其他用戶對數(shù)據(jù)庫所做更改的可見性。ado.net 不具有固有的游標(biāo)對象,而是包含提供傳統(tǒng)游標(biāo)功能的數(shù)據(jù)類。例如,在 ado.net datareader 對象中提供只進(jìn)、只讀游標(biāo)的功能。有關(guān)游標(biāo)功能的更多信息,請參見數(shù)據(jù)訪問技術(shù)。

  將打開連接的時間降至最低

  在 ado.net 中,打開連接的時間僅足夠執(zhí)行數(shù)據(jù)庫操作,例如“選擇”(select) 或“更新”(update)。您可以將行讀入數(shù)據(jù)集中,然后在不保持與數(shù)據(jù)源的連接的情況下使用它們。在 ado 中,記錄集可以提供不連接的訪問,但 ado 主要是為連接的訪問設(shè)計的。

  ado 和 ado.net 中的不連接處理之間存在一個顯著差異。在 ado 中,通過調(diào)用 ole db 提供程序來與數(shù)據(jù)庫通信。但在 ado.net 中,您通過數(shù)據(jù)適配器(oledbdataadapter、sqldataadapter、odbcdataadapter 或 oracledataadapter 對象)與數(shù)據(jù)庫通信,這將調(diào)用 ole db 提供程序或基礎(chǔ)數(shù)據(jù)源提供的 api。ado 和 ado.net 之間的主要區(qū)別在于:在 ado.net 中,數(shù)據(jù)適配器允許您控制將對數(shù)據(jù)集所做的更改傳輸?shù)綌?shù)據(jù)庫的方式,方法是實現(xiàn)性能優(yōu)化、執(zhí)行數(shù)據(jù)驗證檢查或添加其他任何額外處理。

  注意   數(shù)據(jù)適配器、數(shù)據(jù)連接、數(shù)據(jù)命令和數(shù)據(jù)讀取器是組成 .net framework 數(shù)據(jù)提供程序的組件。microsoft 和第三方供應(yīng)商可能會提供其它提供程序,這些提供程序也可集成到 visual studio 中。有關(guān)不同 .net 數(shù)據(jù)提供程序的信息,請參見 .net 數(shù)據(jù)提供程序。

  在應(yīng)用程序間共享數(shù)據(jù)

  在應(yīng)用程序間傳輸 ado.net 數(shù)據(jù)集比傳輸 ado 不連接的記錄集要容易得多。若要將 ado 不連接的記錄集從一個組件傳輸?shù)搅硪粋€組件,請使用 com 封送。若要在 ado.net 中傳輸數(shù)據(jù),請使用數(shù)據(jù)集,它可以傳輸 xml 流。

  相對于 com 封送,xml 文件的傳輸提供以下便利之處:

  更豐富的數(shù)據(jù)類型

  com 封送提供一組有限的數(shù)據(jù)類型(由 com 標(biāo)準(zhǔn)定義的那些類型)。由于 ado.net 中的數(shù)據(jù)集傳輸基于 xml 格式,所以對數(shù)據(jù)類型沒有限制。因此,共享數(shù)據(jù)集的組件可以使用這些組件一般會使用的任何豐富的數(shù)據(jù)類型集。

  性能

  傳輸大型 ado 記錄集或大型 ado.net 數(shù)據(jù)集會使用網(wǎng)絡(luò)資源;隨著數(shù)據(jù)量的增長,施加于網(wǎng)絡(luò)的壓力也在增加。ado 和 ado.net 都使您可以最大限度地降低所傳輸?shù)臄?shù)據(jù)。但 ado.net 還提供另一個性能優(yōu)勢:ado.net 不需要數(shù)據(jù)類型轉(zhuǎn)換。而需要 com 封送來在組件間傳輸記錄集的 ado,則需要將 ado 數(shù)據(jù)類型轉(zhuǎn)換為 com 數(shù)據(jù)類型。

  穿透防火墻

  防火墻可以影響試圖傳輸不連接的 ado 記錄集的兩個組件。請記住,防火墻通常配置為允許 html 文本通過,但防止系統(tǒng)級請求(如 com 封送)通過。

  因為組件使用 xml 交換 ado.net 數(shù)據(jù)庫,所以防火墻可以允許數(shù)據(jù)集通過。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴彦县| 鲜城| 通化县| 潮安县| 荔波县| 乌审旗| 桑日县| 潜江市| 上蔡县| 安溪县| 都兰县| 修文县| 义乌市| 行唐县| 井陉县| 桃园县| 万州区| 道孚县| 收藏| 凤山市| 都江堰市| 酉阳| 句容市| 获嘉县| 集安市| 镇赉县| 贵港市| 台北市| 浮梁县| 永胜县| 柯坪县| 玉田县| 井陉县| 根河市| 肥乡县| 区。| 红河县| 霞浦县| 岐山县| 屏东县| 河池市|