新聞中心
ADO.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。使用ADO.NET DataReader檢索數(shù)據(jù)包括創(chuàng)建Command對(duì)象的實(shí)例,然后通過(guò)調(diào)用Command.ExecuteReader創(chuàng)建一個(gè)DataReader,以便從數(shù)據(jù)源檢索行。下面的示例演示如何使用ADO.NET DataReader檢索數(shù)據(jù),其中reader表示有效的DataReader,而command表示有效的Command對(duì)象。

成都創(chuàng)新互聯(lián)成立于2013年,我們提供高端重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、成都營(yíng)銷網(wǎng)站建設(shè)、小程序制作、微信公眾號(hào)開(kāi)發(fā)、成都網(wǎng)站營(yíng)銷服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺(jué)設(shè)計(jì)、程序開(kāi)發(fā)來(lái)完成項(xiàng)目落地,為木包裝箱企業(yè)提供源源不斷的流量和訂單咨詢。
- reader=command.ExecuteReader();
#T#使用DataReader對(duì)象的Read方法可從查詢結(jié)果中獲取行。通過(guò)向DataReader傳遞列的名稱或序號(hào)引用,可以訪問(wèn)返回行的每一列。不過(guò),為了實(shí)現(xiàn)***性能,DataReader提供了一系列方法,將使您能夠訪問(wèn)其本機(jī)數(shù)據(jù)類型(GetDateTime、GetDouble、GetGuid、GetInt32等)的列值。有關(guān)數(shù)據(jù)提供程序特定的DataReaders的類型化訪問(wèn)器方法列表,請(qǐng)參見(jiàn)OleDbDataReader和SqlDataReader。假定基礎(chǔ)數(shù)據(jù)類型為已知,如果使用類型化訪問(wèn)器方法,將減少在檢索列值時(shí)所需的類型轉(zhuǎn)換量。
.NETFramework的WindowsServer2003版包含DataReader的附加屬性HasRows,該屬性使您能夠在讀取DataReader之前就可確定它是否返回了任何結(jié)果。以下代碼示例循環(huán)訪問(wèn)一個(gè)DataReader對(duì)象,并從每個(gè)行中返回兩個(gè)列。
- 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ù)流使過(guò)程邏輯可以有效地按順序處理從數(shù)據(jù)源中返回的結(jié)果。由于數(shù)據(jù)不在內(nèi)存中緩存,所以在ADO.NET DataReader檢索數(shù)據(jù)過(guò)大時(shí),DataReader是一種適合的選擇。關(guān)閉DataReader。每次使用完DataReader對(duì)象后都應(yīng)調(diào)用Close方法。如果Command包含輸出參數(shù)或返回值,那么在DataReader關(guān)閉之前,將無(wú)法訪問(wèn)這些輸出參數(shù)或返回值。
請(qǐng)注意,當(dāng)DataReader打開(kāi)時(shí),該DataReader將以獨(dú)占方式使用Connection。在原始DataReader關(guān)閉之前,將無(wú)法對(duì)Connection執(zhí)行任何命令(包括創(chuàng)建另一個(gè)DataReader)。不要在類的Finalize方法中對(duì)Connection、DataReader或任何其他托管對(duì)象調(diào)用Close或Dispose。在終結(jié)器中,僅釋放類直接擁有的非托管資源。如果類不擁有任何非托管資源,則不要在類定義中包含F(xiàn)inalize方法。
分享文章:寶典之使用ADO.NETDataReader檢索數(shù)據(jù)
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/dphjppi.html


咨詢
建站咨詢
