リスト1 オンメモリ・データベースを作成するプログラム

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
    ' 社員テーブルを作成する。
    Dim ShainTBL As DataTable = New DataTable("ShainTBL")

    ' 社員テーブルに列を作成する。
    Dim dc As DataColumn = New DataColumn()		' 社員ID
    dc.DataType = Type.GetType("System.Int32")
    dc.Caption = "ShainID"
    dc.ColumnName = "ShainID"
    dc.AllowDBNull = False
    dc.Unique = True
    ShainTBL.Columns.Add(dc)
    dc = New DataColumn()				' 社員名
    dc.DataType = Type.GetType("System.String")
    dc.Caption = "ShainMei"
    dc.ColumnName = "ShainMei"
    ShainTBL.Columns.Add(dc)
    dc = New DataColumn()				' 部署ID
    dc.DataType = Type.GetType("System.Int32")
    dc.Caption = "BushoID"
    dc.ColumnName = "BushoID"
    ShainTBL.Columns.Add(dc)
    Dim pk(1) As DataColumn				' 主キー
    pk(0) = ShainTBL.Columns("ShainID")
    ShainTBL.PrimaryKey = pk

    ' 社員テーブルに行を作成する。
    Dim dr As DataRow = ShainTBL.NewRow()
    dr("ShainID") = 1
    dr("ShainMei") = "ドット太郎"
    dr("BushoID") = 1
    ShainTBL.Rows.Add(dr)
    dr = ShainTBL.NewRow()
    dr("ShainID") = 2
    dr("ShainMei") = "ドット花子"
    dr("BushoID") = 2
    ShainTBL.Rows.Add(dr)

    ' 部署テーブルを作成する。
    Dim BushoTBL As DataTable = New DataTable("BushoTBL")

    ' 部署テーブルに列を作成する。
    dc = New DataColumn()				' 部署ID
    dc.DataType = Type.GetType("System.Int32")
    dc.Caption = "BushoID"
    dc.ColumnName = "BushoID"
    dc.AllowDBNull = False
    dc.Unique = True
    BushoTBL.Columns.Add(dc)
    dc = New DataColumn()				' 部署名
    dc.DataType = Type.GetType("System.String")
    dc.Caption = "BushoMei"
    dc.ColumnName = "BushoMei"
    BushoTBL.Columns.Add(dc)
    pk(0) = BushoTBL.Columns("BushoID")		' 主キー
    BushoTBL.PrimaryKey = pk

    ' 部署テーブルに行を作成する。
    dr = BushoTBL.NewRow()
    dr("BushoID") = 1
    dr("BushoMei") = "開発部"
    BushoTBL.Rows.Add(dr)
    dr = BushoTBL.NewRow()
    dr("BushoID") = 2
    dr("BushoMei") = "営業部"
    BushoTBL.Rows.Add(dr)

    ' データセットを作成する。
    Dim ShainMeiboDS As DataSet = New DataSet("ShaiMeiboDS")

    ' テーブルをデータセットに追加する。
    ShainMeiboDS.Tables.Add(ShainTBL)
    ShainMeiboDS.Tables.Add(BushoTBL)

    ' リレーションを設定する。
    ' リレーション名、親(主キー側)、子(外部キー側)
    Dim rel As DataRelation = New DataRelation("ShainBusho", _
    ShainMeiboDS.Tables("BushoTBL").Columns("BushoID"), _
    ShainMeiboDS.Tables("ShainTBL").Columns("ShainID"))
    ShainMeiboDS.Relations.Add(rel)

    ' データセットの内容をデータグリッドに表示する。
    DataGrid1.CaptionText = ShainTBL.TableName
    DataGrid1.SetDataBinding(ShainMeiboDS, "ShainTBL")
    DataGrid2.CaptionText = BushoTBL.TableName
    DataGrid2.SetDataBinding(ShainMeiboDS, "BushoTBL")
end sub