リスト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
|