C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■91945 / )  Re[1]: コンボボックスによる絞り込み
□投稿者/ 魔界の仮面弁士 (2301回)-(2019/08/12(Mon) 23:30:27)
No91943 (たかし さん) に返信
> の2つのテーブルがありフォーム上にはComboBox1ととComboBox2があります。

Windows Forms アプリケーションを作成していて、
tbl_部署というのは DataTable の事で良いでしょうか。

言語指定が無かったですが、comboBox1 ではなく ComboBox1 と書かれていたので、
とりあえず Visual Basic と仮定して書いてみます。


Public Class Form1
  Private ds As DataSet
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ds = CreateSample()

    ds.Relations.Add("rel_部署_社員",
             ds.Tables("tbl_部署").Columns("部署コード"),
             ds.Tables("tbl_社員").Columns("部署コード"))

    Me.BindingSource1.DataSource = ds
    Me.BindingSource1.DataMember = "tbl_部署"

    Me.BindingSource2.DataSource = Me.BindingSource1
    Me.BindingSource2.DataMember = "rel_部署_社員"

    ComboBox1.DataSource = Me.BindingSource1
    ComboBox1.ValueMember = "部署コード"
    ComboBox1.DisplayMember = "部署名"
    ComboBox2.DataSource = Me.BindingSource2
    ComboBox2.ValueMember = "社員コード"
    ComboBox2.DisplayMember = "社員名"
  End Sub

  Private Function CreateSample() As DataSet
    Dim ds As New DataSet("Sample") With {.CaseSensitive = True}
    Dim tbl1 As DataTable = ds.Tables.Add("tbl_部署")
    Dim tbl2 As DataTable = ds.Tables.Add("tbl_社員")

    tbl1.Columns.Add("部署コード", GetType(Decimal)).AllowDBNull = False
    tbl1.Columns.Add("部署名", GetType(String)).AllowDBNull = False
    tbl1.PrimaryKey = New DataColumn() {tbl1.Columns("部署コード")}

    tbl2.Columns.Add("社員コード", GetType(String)).AllowDBNull = False
    tbl2.Columns.Add("社員名", GetType(String)).AllowDBNull = False
    tbl2.Columns.Add("部署コード", GetType(Decimal)).AllowDBNull = True
    tbl2.PrimaryKey = New DataColumn() {tbl2.Columns("社員コード")}

    tbl1.Rows.Add(10000D, "総務部")
    tbl1.Rows.Add(10020D, "総務部総務課")
    tbl1.Rows.Add(12000D, "営業部")
    tbl1.Rows.Add(12010D, "営業部営業一課")

    tbl2.Rows.Add("AX0020", "金田 一太郎", 10000D)
    tbl2.Rows.Add("BY0112", "今西 欣治", 10020D)
    tbl2.Rows.Add("DX0987", "有馬 貴臣", 10020D)
    tbl2.Rows.Add("DX1024", "山口 六平太", 10020D)
    tbl2.Rows.Add("PN0132", "緒方 賢太", 12000D)
    tbl2.Rows.Add("PC1024", "片岡 孝夫", 12010D)
    tbl2.Rows.Add("PC2048", "久米 広明", 12010D)

    ds.AcceptChanges()
    Return ds
  End Function
End Class
返信 編集キー/


管理者用

- Child Tree -