ListBox 選択項目のコード取得 [VB.NET]

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

ListBox DataAdapter.Fill

リストボックス(ListBox)に表示した部門名から選択した部門名の部門コードを取得するVB.NETサンプルプログラムです。

MDB版:サンプルプログラム

ListBox
コントロール プロパティ 設定値
ListBox1 - -
LblBumonCode BorderStyle FixedSingle

sample.mdbをプロジェクトフォルダのbinフォルダに置きます。

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

Imports System.Data.OleDb

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "
    ' 自動生成部分省略
#End Region

    '---------------------------------------------------------------
    ' 部門名をリストボックスに表示
    '---------------------------------------------------------------
    Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        Dim con As New OleDbConnection()
        Dim cmd As New OleDbCommand()
        Dim da As New OleDbDataAdapter()
        Dim ds As New DataSet()

        Try
            ' DB接続文字列の設定
            con.ConnectionString = _
                "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
                Application.StartupPath & "\sample.mdb"

            ' コネクションの設定
            cmd.Connection = con

            ' DB接続を開く
            con.Open()

            ' SQL文の設定
            cmd.CommandText = "SELECT 部門コード, 部門名 "
            cmd.CommandText &= "FROM 部門テーブル "
            cmd.CommandText &= "ORDER BY 部門コード"

            ' データを取得する 
            da.SelectCommand = cmd
            da.Fill(ds, "部門テーブル")

            ' リストボックスに部門名を表示する設定
            Me.ListBox1.DisplayMember = "部門名"

            ' 部門名に対応した部門コードを取得できるようにする設定
            Me.ListBox1.ValueMember = "部門コード"

            ' データ連結を行なう
            Me.ListBox1.DataSource = ds.Tables("部門テーブル")

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

        Finally
            ' DB接続を閉じる
            If Not con Is Nothing Then
                con.Close()
            End If

        End Try

    End Sub

    '---------------------------------------------------------------
    ' 選択した部門名の部門コードを取得
    '---------------------------------------------------------------
    Private Sub ListBox1_SelectedIndexChanged _
        (ByVal sender As System.Object, _
        ByVal e As System.EventArgs) _
        Handles ListBox1.SelectedIndexChanged

        ' 選択した部門コードをラベルに表示
        Me.LblBumonCode.Text = CStr(Me.ListBox1.SelectedValue)

    End Sub

End Class