熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ADO.NET和ADO的比較

2013-11-13 10:56:27  來源: .NET編程 
   您可以通過將 ADONET 的各項功能與 ActiveX 數據對象 (ADO) 的特定功能進行比較來理解 ADONET 的功能   
  
  的內存中表示形式 

  在ADO中數據的內存中表示形式為記錄集在ADONET中它為數據集它們之間有重要的差異

  表的個數 

  記錄集看起來像單個表如果記錄集將包含來自多個數據庫表的數據則它必須使用JOIN查詢將來自各個數據庫表的數據組合到單個結果表中

  相反數據集是一個或多個表的集合數據集內的表稱為數據表明確地說它們是DataTable對象如果數據集包含來自多個數據庫表的數據它通常將包含多個DataTable對象每個DataTable對象通常對應於單個數據庫表或視圖這樣數據集可以模仿基礎數據庫的結構

  數據集通常還包含關系數據集內的關系類似於數據庫中的外鍵關系即它使多個表中的行彼此關聯例如如果數據集包含一個有關投資者的表和另一個有關每個投資者的股票購買情況的表則數據集可能還包含一個關系來連接投資者表的各個行和購買表的對應行

  由於數據集可以保存多個獨立的表並維護有關表之間關系的信息因此它可以保存比記錄集豐富得多的數據結構包括自關聯的表和具有多對多關系的表

  數據導航和游標 
   
  在ADO中您使用ADO MoveNext方法順序掃描記錄集的行在ADONET中行表示為集合因此您可以像依次通過任何集合那樣依次通過表或通過序號索引或主鍵索引訪問特定行DataRelation對象維護有關主記錄和詳細資料記錄的信息並提供方法使您可以獲取與正在操作的記錄相關的記錄例如從 Investor 表的Nate Sun的行開始可以定位到Purchase 表中描述其購買情況的那組行

    游標是數據庫元素它控制記錄導航更新數據的能力和其他用戶對數據庫所做更改的可見性ADONET 不具有固有的游標對象而是包含提供傳統游標功能的數據類例如在ADONET DataReader對象中提供只進只讀游標的功能有關游標功能的更多信息請參見數據訪問技術

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

  在ADONET中打開連接的時間僅足夠執行數據庫操作例如選擇(Select) 或更新(Update)您可以將行讀入數據集中然後在不保持與數據源的連接的情況下使用它們在ADO中記錄集可以提供不連接的訪問但ADO主要是為連接的訪問設計的

  ADO和ADONET中的不連接處理之間存在一個顯著差異在ADO中通過調用OLE DB提供程序來與數據庫通信但在ADONET中您通過數據適配器(OleDbDataAdapterSqlDataAdapterOdbcDataAdapter 或 OracleDataAdapter 對象)與數據庫通信這將調用OLE DB提供程序或基礎數據源提供的APIADO和ADONET 之間的主要區別在於在ADONET中數據適配器允許您控制將對數據集所做的更改傳輸到數據庫的方式方法是實現性能優化執行數據驗證檢查或添加其他任何額外處理

  注意數據適配器數據連接數據命令和數據讀取器是組成 NET Framework 數據提供程序的組件Microsoft 和第三方供應商可能會提供其它提供程序這些提供程序也可集成到Visual Studio 中有關不同 NET 數據提供程序的信息請參見NET 數據提供程序

  在應用程序間共享數據 

  在應用程序間傳輸ADONET數據集比傳輸ADO不連接的記錄集要容易得多若要將ADO不連接的記錄集從一個組件傳輸到另一個組件請使用COM封送若要在ADONET中傳輸數據請使用數據集它可以傳輸XML流

  相對於COM封送XML文件的傳輸提供以下便利之處

  更豐富的數據類型 

  COM 封送提供一組有限的數據類型(由COM標准定義的那些類型)由於ADONET數據集傳輸基於XML格式所以對數據類型沒有限制因此共享數據集的組件可以使用這些組件一般會使用的任何豐富的數據類型集

  性能 
   
  傳輸大型ADO記錄集或大型ADONET據集會使用網絡資源隨著數據量的增長施加於網絡的壓力也在增加ADO 和ADONET都使您可以最大限度地降低所傳輸的數據但ADONET還提供另一個性能優勢ADONET不需要數據類型轉換而需要COM封送來在組件間傳輸記錄集的ADO則需要將ADO數據類型轉換為COM數據類型

  穿透防火牆 

  防火牆可以影響試圖傳輸不連接的ADO記錄集的兩個組件請記住防火牆通常配置為允許HTML文本通過但防止系統級請求(如COM封送)通過

  因為組件使用XML交換ADONET數據庫所以防火牆可以允許數據集通過


From:http://tw.wingwit.com/Article/program/net/201311/14823.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.