Using ステートメント [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

Using … As New …

VB 2005から新たに使えるようになった Usingステートメントを使って、データベースと接続するサンプルプログラムを作成します。

VB 2005 以降

VB 2005から新たに Using ステートメントが使えるようになりました。Usingステートメントで生成したオブジェクトは、End Usingを抜ける時に自動的に閉じられます。したがって、Finallyブロックで、closeメソッドを明示的に呼び出す必要はありません。

Try
    Using con As New SqlConnection
        Dim settings As ConnectionStringSettings

        ' 接続文字列をapp.configファイルから取得
        settings = ConfigurationManager.ConnectionStrings _
            ("AdoNet.My.MySettings.sampleDBConStr")

        If settings Is Nothing Then
            ' 接続文字列取得エラー
            MessageBox.Show _
                ("app.configに未登録", "接続文字列エラー")
        Else
            ' 接続文字列の設定
            con.ConnectionString = settings.ConnectionString
            ' DBを開く
            con.Open()
        End If

    End Using

Catch ex As Exception
    MessageBox.Show(ex.ToString, "例外発生")

End Try

Try - Finally

VB.NET

VB.NETでは、コネクションの Openメソッドを呼出したら、Try-Finally ステートメントを使って、Finally ブロックで Closeメソッドを呼出すようにコーディングする必要があります。

Using - End Using のサンプルプログラムを Try - Finally で書き直しました。

Dim con As New SqlConnection

Try
    Dim settings As ConnectionStringSettings

    ' 接続文字列をapp.configファイルから取得
    settings = ConfigurationManager.ConnectionStrings _
        ("AdoNet.My.MySettings.sampleDBConStr")

    If settings Is Nothing Then
        ' 接続文字列取得エラー
        MessageBox.Show("app.configに未登録", "接続文字列エラー")
    Else
        ' 接続文字列の設定
        con.ConnectionString = settings.ConnectionString
        ' DBを開く
        con.Open()
    End If

Catch ex As Exception
    ' 例外が発生した時の処理
    MessageBox.Show(ex.ToString, "例外発生")

Finally
    ' DBを閉じる
    If Not con.State = ConnectionState.Closed Then
        con.Close()
    End If

End Try