ADO.NET入门教程(一) 初识ADO.NET
摘要
作為.NET框架最重要的組件之一,ADO.NET扮演著應用程序與數據交互的重要的角色。本文將從宏觀的角度來探討ADO.NET,和大家一起了解ADO.NET來龍去脈以及ADO.NET的主要組成部分。
?目錄
- 什么是ADO.NET?
- 理清ADO.NET與ADO的關系
- 認識ADO.NET最核心的組成部分
- ADO.NET擴展
?
1. 什么是ADO.NET?
???? ?簡單的講,ADO.NET是一組允許.NET開發人員使用標準的,結構化的,甚至無連接的方式與數據交互的技術。對于ADO.NET來說,可以處理數據源是多樣的??梢允菓贸绦蛭ㄒ皇褂玫膭摻ㄔ趦却嬷袛祿?#xff0c;也可以是與應用程序分離,存儲在存儲區域的數據(如文本文件、XML、關系數據庫等)。
????? 具體來說,ADO.NET 對 Microsoft SQL Server 和 XML 等數據源以及通過 OLE DB 和 XML 公開的數據源提供一致的訪問。數據共享使用者應用程序可以使用 ADO.NET 來連接到這些數據源,并檢索、處理和更新所包含的數據。
????? 作為.NET框架的重要組成部分,ADO.NET 類封裝在 System.Data.dll 中,并且與 System.Xml.dll 中的 XML 類集成。當編譯使用 System.Data 命名空間的代碼時,需要引用System.Data.dll 和 System.Xml.dll。
?
2. 理清ADO.NET與ADO的關系
????? 作為一個普通的縮略詞,"ADO.NET”并只不是"ADO”的簡單升級版本。嚴格的講,ADO.NET和ADO是兩種截然不同的數據訪問方式。
????? ADO的全稱是Activex Data Objects,它是早期(.NET還未實施)開發人員用來訪問數據的組件。隨著.NET的發展,ADO.NET順其自然地以其顯著的優越性逐步取代ADO。從技術層面講,ADO使用OLE DB接口并基于微軟的COM技術,而ADO.NET擁有自己的ADO.NET接口并且基于微軟的.NET體系架構。
????? 雖然大多數基于 .NET 的新應用程序將使用 ADO.NET 來編寫,但 .NET 程序員仍然可以通過 .NET COM 互操作性服務來使用 ADO。
?
3. 認識ADO.NET最核心的組成部分
????? System.Data命名空間提供了不同的ADO.NET類,它們既分工明確,又相互協作地提供表格數據的訪問服務。該類庫包含兩組重要的類:一組負責處理軟件內部的實際數據(DataSet),一組負責與外部數據系統通信(Data Provider)。具體架構如下圖所示:
?
??????????????????????? 圖1.3.1? ADO.NET核心組件
?
????? DataSet 是 ADO.NET 的非連接(斷開)結構的核心組件。DataSet 的設計目的很明確:為了實現獨立于任何數據源的數據訪問。因此,ADO.NET結構可以用于多種不同的數據源,用于 XML 數據,或用于管理應用程序本地的數據。DataSet 包含一個或多個 DataTable 對象的集合,這些對象由數據行和數據列以及主鍵、外鍵、約束和有關 DataTable 對象中數據的關系信息組成。
????? ADO.NET 結構的另一個核心元素是 .NET 數據提供程序(Data Provider)。具體包括:
- Connection 對象提供與數據源的連接。
- Command對象使您能夠訪問用于返回數據、修改數據、運行存儲過程以及發送或檢索參數信息的數據庫命令。
- DataReader 對象從數據源中提供快速的,只讀的數據流。
- DataAdapter 對象提供連接 DataSet 對象和數據源的橋梁。DataAdapter 使用 Command 對象在數據源中執行 SQL 命令,以便將數據加載到 DataSet 中,并使對 DataSet 中數據的更改與數據源保持一致。
?
4. ADO.NET擴展
????? 提供一致的數據訪問,是使用ADO.NET的一個關鍵的優勢。但是對于開發人員來說,更大的優勢是通過ADO.NET將管理的數據作為對象來說處理。?表中的每個字段都是強類型成員,與.NET 通用類型系統(Common Type System)完全兼容。個別的字段甚至可以作為局部變量來使用。數據行或者其他的數據集對象是標準的.NET 集合(Collections),可以用標準的迭代方法處理。
????? Entity Framework和LINQ是微軟為了提高ADO.NET核心功能而建立的兩個新的工具。需要注意的是,它們并不是ADO.NET的基本組成部分。
????? Entity Framework 利用了抽象化數據結構的方式,將每個數據庫對象都轉換成應用程序對象 (entity),而數據字段都轉換為屬性 (property),關系則轉換為結合屬性 (association),讓數據庫的 E/R 模型完全的轉成對象模型。而在抽象化的結構之下,則是高度集成與對應結構的概念層、對應層和儲存層,以及支持 Entity Framework 的數據提供者 (provider),讓數據訪問的工作得以順利與完整的進行。
????? LINQ允許編寫C#或者Visual Basic代碼以查詢數據庫相同的方式操作內存數據。LINQ是一個通用的數據工具,可以讓你非常容易地融合不同數據源的數據,并得到單一的數據結果集。
轉載于:https://www.cnblogs.com/chenmfly/p/4876602.html
總結
以上是生活随笔為你收集整理的ADO.NET入门教程(一) 初识ADO.NET的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java从入门到精通08-二进制、位运算
- 下一篇: asp.net ajax控件工具集 Au