您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使用ADO.NET DataReader檢索數據,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
使用ADO.NET DataReader檢索數據包括創建Command對象的實例,然后通過調用Command.ExecuteReader創建一個DataReader,以便從數據源檢索行。下面的示例演示如何使用ADO.NET DataReader檢索數據,其中reader表示有效的DataReader,而command表示有效的Command對象。
reader=command.ExecuteReader();
使用DataReader對象的Read方法可從查詢結果中獲取行。通過向DataReader傳遞列的名稱或序號引用,可以訪問返回行的每一列。不過,為了實現***性能,DataReader提供了一系列方法,將使您能夠訪問其本機數據類型(GetDateTime、GetDouble、GetGuid、GetInt32等)的列值。有關數據提供程序特定的DataReaders的類型化訪問器方法列表,請參見OleDbDataReader和SqlDataReader。假定基礎數據類型為已知,如果使用類型化訪問器方法,將減少在檢索列值時所需的類型轉換量。
.NETFramework的WindowsServer2003版包含DataReader的附加屬性HasRows,該屬性使您能夠在讀取DataReader之前就可確定它是否返回了任何結果。以下代碼示例循環訪問一個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提供未緩沖的數據流,該數據流使過程邏輯可以有效地按順序處理從數據源中返回的結果。由于數據不在內存中緩存,所以在ADO.NET DataReader檢索數據過大時,DataReader是一種適合的選擇。關閉DataReader。每次使用完DataReader對象后都應調用Close方法。如果Command包含輸出參數或返回值,那么在DataReader關閉之前,將無法訪問這些輸出參數或返回值。
請注意,當DataReader打開時,該DataReader將以獨占方式使用Connection。在原始DataReader關閉之前,將無法對Connection執行任何命令(包括創建另一個DataReader)。不要在類的Finalize方法中對Connection、DataReader或任何其他托管對象調用Close或Dispose。在終結器中,僅釋放類直接擁有的非托管資源。如果類不擁有任何非托管資源,則不要在類定義中包含Finalize方法。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用ADO.NET DataReader檢索數據”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。