堆棧跟蹤顯示ExecuteReader是ExecuteScalar.While挖掘相關命令行爲的底層方法,我在下面找到了該帖子 - 指出readerbehaviour.default被讀者使用。使用ExecuteScalar()會導致使用「默認」CommandBehaviour調用ExecuteReader()?
Does ExecuteScalar() have any advantages over ExecuteReader()?
我知道,一個連接總是可以被關閉和設置顯式使用datareader.close(),datareader.dispose() - 提供的ExecuteReader(commandbehaviour.Closeconnection)被使用。另一方面,ExecuteReader(CommandBehaviour.Default)即使在關閉和/或丟棄數據注視器對象時也會保持底層連接的打開狀態。所以我的問題是,如果executablecalar使用默認行爲,我如何確保底層連接關閉,一旦標量值被檢索?
謝謝羅蘭!使用陳述可能是最快和最簡單的方法。 – MZZ
很高興喜歡它,using語句在C#中是絕對的寶石,應該比使用它更經常地使用它 – LorenVS