ADO與ADO.NET 的區別
前面也分別對ADO
和ADO.NET
進行概述,從前面的兩篇文章來看,我們都知道ADO
與ADO.NET
都是一種資料庫訪問的方式,都是從最基本的Connection
(連線)物件開始的,可以說ADO.NET
是ADO
的一種改進版,在ADO
的基礎之上ADO.NET
統一了資料容器類程式設計介面,無論你打算用哪種編寫哪種應用程式,都可以通過同一組類來處理資料 。
在ADO
的基礎上,ADO.NET
做了很多的改進,以下是它們區別:
1.物件不同:
ADO
使用的是OLEDB
介面並基於微軟的COM
技術,而ADO.NET
有自己的ADO.NET
介面並且基於微軟的.NET
體系架構。
2.儲存物件不同:
ADO
以Recordset
記錄集形式進行存放,ADO.NET
是以DateSet
資料集形式進行存放。記錄集看起來更像一個單表,如果要讓Recordset
以多表的方式就必須在SQL
中進行多表連線,反之,資料集是一個或多個表的集合,它就相當於是記憶體中的一個資料庫,資料庫記憶體放的是DataTable
物件,也就是我們平時所說的表。
3.連線方式不同:
ADO
在與資料庫連線後,會一直保持連線,直到斷開(為連線而設計)。而ADO.NET
讀取完所需要資料之後,會自動斷開連線。當需要更新資料時,會再次連線。也就是說ADO.NET
讀取資料庫中的資料有兩種方式:一種是基於線上的連線方式,一種是基於離線的非連線方式。為什麼會有這兩種方式呢?我想主要是由於ADO.NET
取消了以往的Recordset
物件,而採用DataSet
的緣故吧。
Dataset
,它相當於是記憶體中的一個資料庫,它是不依賴與資料庫的獨立資料集合,所謂獨立就是說,即使是斷開資料鏈路或者是關閉資料庫,它仍然是可以使用的。Dataset
內部是用XML(可擴充套件標記語言)來描述資料的。在訪問資料的時候,ADO.NET
會利用XML
製作資料的一份副本,也就是說只有在這段時間內是需要線上的。而在ADO
中,xml
只不過是一種輸入和輸出格式。
此外:由於Dataset
內部是用XML
(可擴充套件標記語言)格式來描述資料的,所以ADO.NET
對資料型別沒有限制。而Com
技術要求使用的資料型別必須是符合Com
規範,所以ADO
對資料型別有限制要求。
相關文章
- ADO.NET 1.1和2.0事務的區別
- ado.net 與lot
- entity framework與ADO.NET 2.0效率Framework
- ADO.NET 總結
- 簡述ADO.NET(一)
- ado.net中事務的使用
- Ado.NET基礎必備
- 使用 【Ado.Net】 批量插入資料
- ADO.NET連線池寫法
- ADO.NET入門教程之Command物件與資料檢索物件
- C#快速入門教程(28)—— ADO.NETC#
- 通用查詢設計思想(2)- 基於ADO.Net的設計
- ADO.NET入門教程之資料庫連線池資料庫
- C#快速入門教程(29)—— ADO.NET離線元件與資料繫結C#元件
- C# 資料操作系列 - 17 Dapper ——號稱可以與ADO.NET 同臺飆車的ORMC#APPORM
- 簡述在ADO中使用介面的抽象資料提供程式以及ADO.NET資料提供程式工廠模型抽象模型
- EF6使用ADO.NET連線GBase8s資料庫示例資料庫
- ??與?:的區別
- Dapper的封裝、二次封裝、官方擴充套件包封裝,以及ADO.NET原生封裝APP封裝套件
- LinQ查詢基礎(三)LINQ to ADO.net(1)LINQ to DataSet實現複雜資料查詢
- const與static的區別
- HTTP 與 HTTPS 的區別HTTP
- getAttribute() 與 attr() 的區別
- @import與<link> 的區別Import
- Postgresql與MySQL的區別MySql
- HashSet與HashMap的區別HashMap
- HashTable與ConcurrentHashMap的區別HashMap
- maven與ant的區別Maven
- __new()__ 與 __init()__的區別
- @Autowired 與@Resource的區別
- gulp與webpack的區別Web
- free 與 CFRelease 的區別
- post與get的區別
- Git與GitHub的區別Github
- Comparable與Comparator的區別
- volatile與synchronized的區別synchronized
- Javascript中“==”與“===”的區別JavaScript
- ICMP與IGMP的區別