溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用ADO.NET DataReader檢索數(shù)據(jù)

發(fā)布時間:2021-11-03 15:17:54 來源:億速云 閱讀:147 作者:小新 欄目:編程語言

這篇文章主要介紹了如何使用ADO.NET DataReader檢索數(shù)據(jù),具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

使用ADO.NET DataReader檢索數(shù)據(jù)包括創(chuàng)建Command對象的實例,然后通過調(diào)用Command.ExecuteReader創(chuàng)建一個DataReader,以便從數(shù)據(jù)源檢索行。下面的示例演示如何使用ADO.NET DataReader檢索數(shù)據(jù),其中reader表示有效的DataReader,而command表示有效的Command對象。

reader=command.ExecuteReader();

使用DataReader對象的Read方法可從查詢結(jié)果中獲取行。通過向DataReader傳遞列的名稱或序號引用,可以訪問返回行的每一列。不過,為了實現(xiàn)***性能,DataReader提供了一系列方法,將使您能夠訪問其本機數(shù)據(jù)類型(GetDateTime、GetDouble、GetGuid、GetInt32等)的列值。有關(guān)數(shù)據(jù)提供程序特定的DataReaders的類型化訪問器方法列表,請參見OleDbDataReader和SqlDataReader。假定基礎(chǔ)數(shù)據(jù)類型為已知,如果使用類型化訪問器方法,將減少在檢索列值時所需的類型轉(zhuǎn)換量。

.NETFramework的WindowsServer2003版包含DataReader的附加屬性HasRows,該屬性使您能夠在讀取DataReader之前就可確定它是否返回了任何結(jié)果。以下代碼示例循環(huán)訪問一個DataReader對象,并從每個行中返回兩個列。

PrivateSubHasRows(ByValconnectionAsSqlConnection)  Usingconnection  DimcommandAsSqlCommand=NewSqlCommand(_  "SELECTCategoryID,CategoryNameFROMCategories;",_  connection)  connection.Open()   DimreaderAsSqlDataReader=command.ExecuteReader()   Ifreader.HasRowsThen  DoWhilereader.Read()  Console.WriteLine(reader.GetInt32(0)_  &vbTab&reader.GetString(1))  Loop  Else  Console.WriteLine("Norowsfound.")  EndIf   reader.Close()  EndUsing  EndSub

DataReader提供未緩沖的數(shù)據(jù)流,該數(shù)據(jù)流使過程邏輯可以有效地按順序處理從數(shù)據(jù)源中返回的結(jié)果。由于數(shù)據(jù)不在內(nèi)存中緩存,所以在ADO.NET DataReader檢索數(shù)據(jù)過大時,DataReader是一種適合的選擇。關(guān)閉DataReader。每次使用完DataReader對象后都應(yīng)調(diào)用Close方法。如果Command包含輸出參數(shù)或返回值,那么在DataReader關(guān)閉之前,將無法訪問這些輸出參數(shù)或返回值。

請注意,當(dāng)DataReader打開時,該DataReader將以獨占方式使用Connection。在原始DataReader關(guān)閉之前,將無法對Connection執(zhí)行任何命令(包括創(chuàng)建另一個DataReader)。不要在類的Finalize方法中對Connection、DataReader或任何其他托管對象調(diào)用Close或Dispose。在終結(jié)器中,僅釋放類直接擁有的非托管資源。如果類不擁有任何非托管資源,則不要在類定義中包含F(xiàn)inalize方法。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用ADO.NET DataReader檢索數(shù)據(jù)”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI