對于ADO.NET對象模型進行學習研究
對ADO.NET對象模型包括用于直接與數據源通信的類。本書將這樣的稱為ADO.NET的“連接”類。多數連接類表示基本的數據訪問概念,如與數據庫、查詢以及查詢結果的物理連接等。
1. ProviderFactory類
ProviderFactory類是ADO.NET 2.0中新添加的類,相當于一個對象工廠,使開發人員能夠為.NET數據提供程序創建其他類的實例。每個ProviderFactory類都提供一種Create方法,此方法創建Connections,ConnectionStringBuilders,Commands,Parameters,DataAdapters和CommandBuilders。
2. Connection類
Connection對象表示與數據源之間的連接。可通過Connection類的各種不同屬性(property)指定數據源的類型、位置以及其他屬性(attribute)。Connection對象大致相當于ADO Connection對象或DAO Database對象,可用它來建立或斷開與數據庫的連接。Connection對象起到渠道的作用,其他對象如DataAdapter和Command對象通過它與數據庫通信,以提交查詢并獲取查詢結果。
3. ConnectionStringBuilder類ConnectionStringBuilder類是ADO.NET 2.0中新添加的類,它簡化了為.NET數據提供程序建立連接字符串的過程。每個ConnectionStringBuilder類公開一些屬性,這些屬性對應于可在.NET數據提供程序的連接字符串中使用的選項。例如,OdbcConnectionStringBuilder類公開一個Driver屬性,OleDbConnectionStringBuilder類公開一個Provider屬性。在使用ConnectionStringBuilder建立連接字符串之后,就可以利用ADO.NET對象模型的ConnectionString屬性來訪問該連接字符串。
4. Command類
Command對象的結構類似于ADO Command或DAO QueryDef對象。Command對象可表示對數據庫的查詢、對存儲過程的調用或返回特定表內容的直接請求。
數據庫支持多種不同類型的查詢。有些查詢通過引用一個或多個表、視圖或者是通過調用一個存儲過程來獲取數據行,有些查詢會對數據行進行修改,還有一些查詢通過創建或修改諸如表、視圖或存儲過程等對象來對數據庫的結構進行有關操作。可使用Command對象對數據庫執行任何一種查詢操作。#t#
使用Command對象查詢數據庫相當簡單。先將Connection屬性設置為連接數據庫的ADO.NET對象模型,然后在CommandText屬性中指定查詢文本。可以提供一個如下所示的標準SQL查詢:SELECT CustomerID, CompanyName, ContactName, Phone FROM Customers還可以僅提供表、視圖或存儲過程的名稱,并使用Command對象的CommandType屬性來設置需要執行的查詢類型。Command類提供了執行查詢的不同方式。
如果此查詢不返回數據行,調用ExecuteNonQuery方法即可。Command類還有一個ExcuteReader方法,該方法返回一個DataReader對象,該對象可用來檢查由查詢所返回的數據行。如果只希望檢索該查詢所返回的第一行第一列,可以通過調用Command對象的ExecuteScalar方法來節省一些代碼行。SqlCommand包括第4個執行方法ExecuteXmlReader,它與ExcuteReader相似,但專門用于處理以XML格式返回結果的查詢。
5ADO.NET對象模型類
DataReader用于以最快的速度檢索并檢查查詢所返回的行。可使用DataReader對象來檢查查詢結果,一次檢查一行。當移向下一行時,前一行的內容就會被放棄。DataReader不支持更新操作。由DataReader返回的數據是只讀的。由于DataReader對象支持最小特性集,所以它的速度非常快,而且是輕量級的。如果曾經用過先前數據訪問技術中的游標,那么可以將DataReader看作一種僅前向型(forward-only)只讀游標,或者流水(firehose)游標。