Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
SqlDataReaderをCloseしなくても例外が発生しない
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9679#CommentId15074
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
よねKEN
 (社会人)
投稿日時
2010/6/25 12:57:51
> ということは、SqlConnectionの重複使用による例外を回避するには
>
> 1.接続文字列のオプションでMARSを有効にする
> 2.SqlDataReaderの取得前にガベージコレクションを強制実行する
>
> の2通りの方法で問題ないでしょうか。
1.については私はよくわかりませんが、2.はやらないでください。
先ほどの検証コードは現象の理由を明らかにするために示しただけですので、
あくまできちんとCloseするのが正等な解決策です。
それをせずに「2.SqlDataReaderの取得前にガベージコレクションを強制実行する」とするのは
単なるごまかしですので、そういう目的でGC.Collectなどを使うべきではありません。
> 再度コードを見直して他にもSqlDataReaderのCloseが抜けている箇所がないか
> 確認するというのは前提として。
と書かれているので、上記のような指摘は理解されているとは思いますが、念のため。
後、確実なCloseのために、VB2005以降であればUsing ~ End Usingの使用も検討してください。