Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

OpenやCloseとUsingについて 解決済み

タグの編集...

投稿者 青の水   (学生)   投稿日時 2022/6/2 13:41:05
疑問というか雑談の様に意見を頂ければと思います。

SQLserverなどのデータベースに接続する際、

Dim Con As New SqlConnection 等記載し、
Con.open() と最後にCon.Close() Con.Dispose() を記載する方法と

Usingを使う方法があると思います。

VBを習いたて且つ学習中の身なのでいろいろな方法な方法でプログラムを書こうと考えておりますゆえ、私は初め前者の方を使い、次は後者の方を使おうと思ったところ、私がTry~Catchと使っていたこともあり変数の適用範囲?のようなものに引っかかってしまったりと少し複雑だなと感じてここに質問させていただきました。

どちらの方がパフォーマンスの方がいいとか見やすいとかはあるのでしょうか?


投稿者 KOZ   (社会人)   投稿日時 2022/6/3 16:04:33
使えるところでは Using を使うほうが良いと思います。
解放漏れを気にすることなく、ループやメソッドを抜けることができますし。

パフォーマンスについては、Using を使わないほうが良くなる可能性があります。
というのは、
Using Con As New SQLConnection()
End Using

というコードは
Dim Con As New SqlConnection()
Try

Finally
    If Con IsNot Nothing Then
        Con.Dispose()
    End If
End Try

のようにコンパイルされるからです。
もっとも Dispose の直前に Nothing かどうかの比較をするだけなので、無視できる程度ですが(^_^;)

投稿者 青の水   (学生)   投稿日時 2022/6/6 11:42:57
解放漏れを気にしないという観点からUsingを使いたいと思いますが、パフォーマンスがよくなる可能性もあるんですね!
ご回答ありがとうございました。

投稿者 (削除されました)   ()   投稿日時 2022/6/7 00:37:52
(削除されました)

投稿者 KOZ   (社会人)   投稿日時 2022/6/7 00:40:18
いや、逆です。
Using を使うと、Try ~ Finallly ブロックと Nothing かどうかのチェックが強制されるので、「Using を使わないほうが」良くなる可能性があります.。