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

首頁(yè) > 編程 > .NET > 正文

ADO.NET和ADO的比較

2024-07-10 12:37:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文將ADO.NET從若干個(gè)方面與ADO進(jìn)行了對(duì)比,對(duì)于想了解兩者異同的人有一定幫助,敘述的也比較專業(yè)。

       您可以通過(guò)將 ADO.NET 的各項(xiàng)功能與 ActiveX 數(shù)據(jù)對(duì)象 (ADO) 的特定功能進(jìn)行比較來(lái)理解 ADO.NET 的功能。   
  
  數(shù)據(jù)在的內(nèi)存中表示形式 

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

  表的個(gè)數(shù) 

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

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

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

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

  數(shù)據(jù)導(dǎo)航和游標(biāo) 
   
  在ADO中,您使用ADO MoveNext方法順序掃描記錄集的行。在ADO.NET中,行表示為集合,因此您可以像依次通過(guò)任何集合那樣依次通過(guò)表,或通過(guò)序號(hào)索引或主鍵索引訪問特定行。DataRelation對(duì)象維護(hù)有關(guān)主記錄和詳細(xì)資料記錄的信息,并提供方法使您可以獲取與正在操作的記錄相關(guān)的記錄。例如,從 Investor 表的“Nate Sun”的行開始,可以定位到Purchase 表中描述其購(gòu)買情況的那組行。

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

  將打開連接的時(shí)間降至最低 

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

  ADO和ADO.NET中的不連接處理之間存在一個(gè)顯著差異。在ADO中,通過(guò)調(diào)用OLE DB提供程序來(lái)與數(shù)據(jù)庫(kù)通信。但在ADO.NET中,您通過(guò)數(shù)據(jù)適配器(OleDbDataAdapter、SqlDataAdapter、OdbcDataAdapter 或 OracleDataAdapter 對(duì)象)與數(shù)據(jù)庫(kù)通信,這將調(diào)用OLE DB提供程序或基礎(chǔ)數(shù)據(jù)源提供的API。ADO和ADO.NET 之間的主要區(qū)別在于:在ADO.NET中,數(shù)據(jù)適配器允許您控制將對(duì)數(shù)據(jù)集所做的更改傳輸?shù)綌?shù)據(jù)庫(kù)的方式,方法是實(shí)現(xiàn)性能優(yōu)化、執(zhí)行數(shù)據(jù)驗(yàn)證檢查或添加其他任何額外處理。

  注意數(shù)據(jù)適配器、數(shù)據(jù)連接、數(shù)據(jù)ming令和數(shù)據(jù)讀取器是組成 .NET Framework 數(shù)據(jù)提供程序的組件。Microsoft 和第三方供應(yīng)商可能會(huì)提供其它提供程序,這些提供程序也可集成到Visual Studio 中。有關(guān)不同 .NET 數(shù)據(jù)提供程序的信息,請(qǐng)參見.NET 數(shù)據(jù)提供程序。

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

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

  相對(duì)于COM封送,XML文件的傳輸提供以下便利之處:

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

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

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

  穿透防火墻 

  防火墻可以影響試圖傳輸不連接的ADO記錄集的兩個(gè)組件。請(qǐng)記住,防火墻通常配置為允許HTML文本通過(guò),但防止系統(tǒng)級(jí)請(qǐng)求(如COM封送)通過(guò)。

  因?yàn)榻M件使用XML交換ADO.NET數(shù)據(jù)庫(kù),所以防火墻可以允許數(shù)據(jù)集通過(guò)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜山县| 东源县| 旬邑县| 道真| 漳浦县| 长兴县| 建阳市| 重庆市| 长宁区| 钟祥市| 门源| 东乌珠穆沁旗| 许昌县| 沅江市| 博客| 酉阳| 屏边| 开封市| 德化县| 台安县| 磴口县| 松潘县| 嘉定区| 长泰县| 安乡县| 九寨沟县| 鄂托克前旗| 博乐市| 顺平县| 泰宁县| 屏山县| 富蕴县| 景宁| 沙田区| 万宁市| 松江区| 阳信县| 嘉义县| 林甸县| 新丰县| 河东区|