投稿者 よね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の使用も検討してください。