關於SqlDataReader遍歷和快取結果集

2021-09-05 13:52:07 字數 405 閱讀 3996

大家都知道,datareader是效率比較高的獲取資料的方式,但是,讀取資料後我們必須及時關閉datareader,否則反而會占用資料連線的資源,如果有很多datareader沒有及時關閉,就會可能發生資料庫連線池超出鏈結數最大限制的錯誤。

有時候需要從資料庫獲得乙個查詢的結果集,然後遍歷這個結果集,對每乙個返回的資料進行必要處理,一般使用while迴圈的方法。

我現在遇到的問題是,如果在迴圈中需要進行新的巢狀查詢,有可能開啟更多的datareader進行新的查詢,並遍歷新的結果集,那就需要快取每個datareader返回的結果集,然後立刻關閉datareader,這種典型的應用在遞迴展開bom或組織結構時會遇到。

我現在還沒有想出高效率的快取datareader結果集的方法,不知道用datatable是否是最好的方式,請大家指教,謝謝。

SqlDataReader和DataSet的選擇

幾乎在每次面試的時候都會被問道這個問題。使用.net開發當中讀取資料應該採用sqldatareader 還是dataset以及對這兩者的理解。先來談談我本人對這兩者的理解 1 sqldatareader 提供一種從sql server 資料庫讀取行的只進流的方式。無法繼承此類。白話解釋就是 使用這個...

SqlDataReader 之指定轉換無效

獲取最新顯示順序資料 string str string.format if exists select showorder from gis funcdefaultlayer where gisfuncid select max showorder as showorder from gis fu...

SqlDataReader類的初次使用誤區

using sqlcommand cmd connect.createcommand 將資料庫中的檔案通過select語句讀出來,看別人家這麼寫能夠通過但我的就不行了 前面的資料庫連線部分略了啊 我的就是不行,只能用上面注釋的那一行才行。還不明白啥原因,暫記一下,找到原因再補充。哎,上面的問題的確狗...