ADO.NET常用對象【轉】
在ADO.NET結構中,常用的組件(對象)有五個,Connection對象、Command對象、DataReader對象、DataApdapter對象和DataSet對象,其中Connection對象、Command對象、DataReader對象,和DataApdapter對象被稱為數據提供程序,數據提供程序中包含了各種用于訪問存儲在各種數據源中的數據對象,是這些數據提供程序可以對數據進行檢索和相關操作。同時數據提供程序還方便了數據集合數據表的交互,以實現對數據的檢索,刪除,添加。
- Connection對象
Connection對象應用于應用程序與數據庫的鏈接。Connection對象常用的屬性和方法:
ConnectionString |
鏈接SQL數據庫的形式:server=localhost;database=Northwind;user id=sa;password=;(這是我們在SQL中最為經常用的) |
Database |
獲取當前數據庫或者要打開要使用的數據庫的名稱 |
方法 |
說明 |
Open |
使用ConnectionString所在指定的屬性設置打開的數據庫連接 |
Close |
關閉數據庫,這是所有關閉數據庫的首選方法 |
在建立數據庫連接時,可以添加連接池,這樣可以顯著提高應用程序的性能和可縮放性。SQLserver.NET Framework數據提供程序將自動為ADO.NET客戶端應用程序添加連接池,也可以定義字符串來控制連接池。下表為一些關鍵字控制連接池的行為。
| 名稱 | 說明 |
| Max Pool Size | 連接池的最大連接數。默認值為100 |
| Min Pool Size | 連接池的最小連接數。默認值為0 |
| Open | 打開數據庫的連接 |
| Pool | 當為“true”時,可從池中取出連接,或者創建新的連接并添加到相應的池中 |
- Command對象
Command對象允許對數據庫進行操作,建立連接后,可通過該對象對數據庫下達命令,在對數據庫進行存儲等一些操作時,需要先把DataReader關閉,Command對象的屬性及其方法如下:
| 屬性 | 說明 |
| CommandText | 設置要執行SQL語句 |
| CommandType | 設置一個值,該值指示SQL語句還是存儲過程 |
| Connection | 設置Command使用的Connection |
| Parametrs | 參數集合 |
| Transaction | 獲取設置將在其中執行的Command的Transaction |
| 方法 | 說明 |
| Executenonquery | 執行SQL語句并返回受影響的行數。用于添加,刪除,更改,但是不能查詢 |
| Executereader | 將Commandtext發送到Connection并生成DataReader,一般對DataReader實例化,可查詢。 |
| Executescalar | 執行查詢,并將結果中的第一行的第一列返回 |
- DataReader對象
DataReader對象是對數據庫進行讀取,并且時刻與服務器保持連接,不需要時一定要關閉,一邊不浪費服務器資源,否則DataReader對象會一直順序讀取下去,DataReader對象可通過Command對象進行實例化。
| 方法 | 說明 |
| Close | 關閉DataReader對象 |
| GetValue | 獲取以本機格式顯示表示的列的值 |
| GetValues | 獲取當前行的集合中的所有屬性列 |
| IsDBNull | 獲取一個值,該值指示列中是否包括含有不存在的或缺少的值 |
| Reader | 使DataReader前進到下一個記錄 |
當已經創建Command對象的實例化,我們可調用Command.ExecuteReader從數據源中檢索行,從而創建DateRerder,如下:
SqlDataReader myReader=myCommand.ExecuteReader();
使用DataReader對象的Reader方法可以從查詢結果中獲取行,同時DataReader還提供一系列的方法用于訪問本機數據類型(GetDateTime、GetDouble、GetGuid、
GetInt32等形式)的列值。需要注意的是當DataReader打開時,該DataReader將以獨占的方式使用Connection。
- DataApdapter對象
DataApdapter對象主要用于對數據的索引(這一點和DataReader功能一樣)和填充DataSet中的表,DataApdapter對象可以對數據集做一些更改比如刪除,添加等。DataApdapter使用數據提供程序的Connection對象對數據源進行連接,使用Connection對象對數據源中的數據進行索引以及修改,并將更改解析回數據源。其主要的屬性及其方法如下:
| 屬性 | 說明 |
| SelectCommand | Command對象,對數據源進行檢索 |
| InsertCommand | Command對象,對數據源中的數據進行添加、插入 |
| UpdateCommand | Command對象,對數據源中的數據進行升級、更新 |
| DeleteCommand | Command對象,對數據源中的數據進行刪除 |
| 方法 | 說明 |
| Fill | 一般是把檢索到數據填充到已定義好的數據集中 |
| Updata | 為已修改的數據集的行調用相應的Insert、Update、Delete語句 |
DataApdapter對象是與服務器斷式的,DataApdapter創建的對象為數據適配器,能對數據源進行一些的操作,這是和DataReader對象(只讀)的不同點。
- DataSet對象
數據集比較抽象的概念,它的作用是將從從數據庫檢索到的數據存儲到用戶已定義的數據集中,數據集可以說是一個簡單的數據庫,但是它是斷開式的,存儲在內存中的,可以將任意的數據源中檢索到的數據加載到數據集。數據集的組成和數據庫幾乎是一樣的,他有數據行、列、約束和有關對象中的數據關系的信息組成。創建數據集,數據集實例通過DataSet構造函數來創建,例如創建下面的空數據集:
DataSet ds=new DataSet();
以上五個ADO.NET對象就可以通過ADO.NET創建數據的鏈接、對數據進行基本的操作、以及對數據的修改等。ADO.NET的強大之處還在于ADO.NET不但可以處理數據庫中的數據,而且還可以處理其他數據存儲方式中的數據,比如,XML格式、EXCEL格式和文本格式的數據。

浙公網安備 33010602011771號