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

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

 すぐ使えるADO.NET

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

ListBox DataAdapter.Fill

 VB.NET(OleDb)版 

ListBox

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

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

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
		
 部門テーブル 
key フィールド名 データ型 サイズ 値要求 空文字列の許可
部門コード テキスト型 3 はい いいえ
部門名 テキスト型 20 はい いいえ
更新日時 日付/時刻型 - はい -
Copyright© すぐ使えるADO.NET. All rights reserved.