App.configから接続文字列を取得 [VB]

Visual Basic ADO.NET [Community Express]

App.configファイルの活用

アプリケーション構成ファイルのApp.configに作成した接続文字列を利用して、データベースの開閉をテストするサンプルプログラムを作成します。

アプリケーション構成ファイルApp.configから接続文字列を取得するためには、ConnectionStringSettingsオブジェクトを利用します。

ConfigurationManagerクラスのConnectionStringsプロパティに、addタグのname属性を設定すると、アプリケーション構成ファイルから接続文字列を取得できます。

ConfigurationManagerクラスを使うためには、メニューの[プロジェクト]→[参照の追加]をクリックして、System.Configurationを追加してください。

App.config ファイル connectionString の name属性の既定値は長すぎるので、"販売管理ConString"と変更しました。

App.config


App.configの接続文字列を使った Open Close サンプルプログラム

新規プロジェクトを作成し、DB接続状態確認テストのボタンをひとつ追加します。この接続確認ボタンをクリックして、データベースの開閉状態を確認します。

StateプロパティでDBの開閉状態が分かるので、このプロパティ値を文字列に変換し、メッセージボックスに表示します。

DB開閉テスト画面

コントロール nameプロパティ 設定値
Label 既定値 Text:SQl Server Express Edition
Button BtnTest Text:DB接続状態確認テスト

接続状態を確認するために、
Dim con As New SqlConnection
Using con
とプログラミングしていますが、これは、End Using 後に con のプロパティを参照しているからです。通常は、
Using con As New SqlConnection
とプログラミングします。

ソースリストの枠内をクリックすると全選択できます。

Option Strict On
Imports System.Data.SqlClient
Imports System.Configuration

Public Class ConTest

    Private Sub BtnTest_Click(sender As Object, e As EventArgs) _
        Handles BtnTest.Click

        Try
            Dim con As New SqlConnection    ' 通常 Using con As New SqlConnection
            Using con
                Dim settings As ConnectionStringSettings
                ' 接続文字列をApp.configファイルから取得
                settings = _
                    ConfigurationManager.ConnectionStrings("販売管理ConString")
                If settings Is Nothing Then
                    ' 接続文字列取得エラー
                    MessageBox.Show("App.configに未登録", "接続文字列エラー")
                Else
                    ' 接続文字列の設定
                    con.ConnectionString = settings.ConnectionString
                    ' DBを開く
                    con.Open()
                    '【接続状態の確認】
                    MessageBox.Show(con.State.ToString, "Open直後")
                End If
            End Using

            '【接続状態の確認】
            MessageBox.Show(con.State.ToString, "End Using直後")

        Catch ex As Exception
            MessageBox.Show(ex.ToString, "接続テスト【例外発生】")

        End Try

    End Sub

End Class

テスト結果は次のようになればOKです。

DB OPEN DB CLOSE