テーブル列をコンボボックスに表示する[VB.NET]

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

 すぐ使えるADO.NET

DataAdapterオブジェクトのFillメソッドの引数にDataSetとテーブル名を指定し、テーブル列データを取得して、コンボボックスに表示します。

ComboBox DataAdapter.Fill

 VB.NET(OleDb)版 

ComboBox1 ComboBox2

コントロール プロパティ 設定値
CmbBumonMei DropDownStyle DropDownList

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

Imports System.Data.OleDb
 
Public Class FormSelectCombOnly
    Inherits System.Windows.Forms.Form
 
#Region " Windows フォーム デザイナで生成されたコード "
    ' 自動生成部分省略
#End Region
 
    '---------------------------------------------------------------
    ' フォームロード:部門テーブルの特定列をコンボボックスに表示
    '---------------------------------------------------------------
    Private Sub FormSelectCombOnly_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 DataSet = New DataSet()
 
        Try
            ' DB接続文字列の設定
            con.ConnectionString = _
              "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
                Application.StartupPath & "\sample.mdb"
 
            ' コネクションの設定
            cmd.Connection = con
 
            ' SQL文の設定
            cmd.CommandText = _
              "SELECT 部門コード, 部門名 FROM 部門テーブル " & _
              "ORDER BY 部門コード"
 
            ' 部門テーブルから全レコードデータを取得する
            da.SelectCommand = cmd
            ds.Clear()
            da.Fill(ds, "部門テーブル")
 
            ' コンボボックスに部門テーブルを連結する
            CmbBumonMei.DataSource = ds.Tables("部門テーブル")
            ' コンボボックスに部門名を表示する
            CmbBumonMei.DisplayMember = "部門名"
            ' 部門コードをSelectdValueで取得する
            CmbBumonMei.ValueMember = "部門コード"
 
        Catch ex As Exception
            ' 例外が発生した時の処理
            MessageBox.Show(ex.ToString, "例外発生")
 
        End Try
 
    End Sub
 
End Class
		
 部門テーブル 
key フィールド名 データ型 サイズ 値要求 空文字列の許可
部門コード テキスト型 3 はい いいえ
部門名 テキスト型 20 はい いいえ
更新日時 日付/時刻型 - はい -
Copyright© すぐ使えるADO.NET. All rights reserved.