ADO 和ADO.NET資料訪問功能的區別

來源:互聯網
上載者:User

        對於任何人來說,在學習之初,我們感覺困難的不是新知識的學習,而是新知識和舊知識極類似的部分。這樣,會讓我們感覺迷茫,極大的混淆了我們已有的知識經驗,對此我們會感到恐慌,所以,對於新舊知識的區別學習,是米老師一直強調的,也是我們迫切不要學習的。

        現在要說關鍵了,ADO我們在一年前已經有所接觸了,一年後,霎間ADO.NET,慌了,這是什麼呢?和ADO有什麼區別呢?為什麼ADO還在正常工作時,我們還要學習心得Data Access Objects模型呢?不要著急,我們慢慢來看看,兩者究竟有什麼區別。

        本文從以下幾點功能上,對ADO和ADO.NET的詳細比較:

       
1.
   駐留記憶體的資料表示方式:

                a)   ADO:使用Recordset對象儲存單行資料,很像資料庫表;

                b)   ADO.NET:使用DataSet對象,該對象可以包含由DataTable對象表示的一個或多個表;

        
2.
   多個表之間的關係:

                a)   ADO:需要對單個結果表中的多個資料庫表使用JOIN查詢來組裝資料,並提供階層記錄集,不過它們很難使用;

                b)   ADO.NET:支援DataRelation對象,將一個DataTable對象中的行和另一個DataTable對象中的行關聯起來;

        
3.
   資料導航:

                 a)  ADO:使用.MoveNext方法順序遍曆Recordset中的行;

                 b)  ADO.NET:DataSet使用導航範例對一個表中的行進行無序訪問。對該資料的訪問類似於訪問集合或數組中的資料。這對於DataTable的Rows集合來說是可能的,它允許通過索引來訪問行。按照關係從一個表中的行導航到另一個表中的相應行;

         4.   斷接訪問:

                a)  ADO:由Recordset提供,但必須顯式編碼。對於Recordset對象,在預設情況下是通過調用OLE
DB提供者來和資料庫通訊;

                b)  ADO.NET:對DataAdapter對象使用標準化的調用,來和資料庫通訊。該對象可以和OLE
DB資料提供者或直接與SQL Sever資料提供者通訊;

        
5.
   可程式化性:

                a)   ADO:所有Recordset欄位資料類型都是COM Variant資料類型,並通常和資料庫表中的欄位名相對應;

                b)   ADO.NET:使用XML的強型別化的編程特徵。資料是自我描述的,因為代碼項名對應於代碼所處理的真實問題。DataSet和DataReader對象中的資料是強型別化的,使代碼更容易閱讀和編寫;

        
6.
   共用各層間或組件間的中斷連線資料:

                 a)   ADO:使用COM編組以發送中斷連線的資料集,它只支援由COM標準定義的資料類型。需要進行類型轉換,這要求使用系統資源;

                 b)   ADO.NET:以XML格式發送DataSet。XML格式對資料類型沒有限制,不需要類型轉換;

         7.   通過防火牆發送資料:

                a)   ADO:這對於ADO來說,比較成問題,因為防火牆通常用於防止系統級請求,如COM編組;

                b)   ADO.NET:ADO.NET支援這一功能,因為ADO.NET的DataSet對象使用XML,XML可以通過防火牆;

         8.   延展性:

                a)   ADO:因為在ADO中,預設情況下是使用串連的Recordset對象、資料庫鎖定和活動資料庫串連,以長時間地爭奪有限的資料庫資源;

                b)   ADO.NET:對資料庫資料進行中斷連線的訪問,無需進行長時間地維護資料庫鎖定或者有效資料庫連接,沒有對有限的資料庫資源的爭奪。

 

         理論還需在實踐中得到運用,在以後的項目使用中,相信我們會對此有更為深刻的理解。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.