目次
列挙型でのDataTableの操作
Public Class DataTableOfEnum
Private Enum カラム名
ID
名称
年齢
End Enum
Public Sub Sample()
' --- データ
Dim Ids As String() = {"1", "2", "3"}
' --- テーブルを作成
Dim WorkData As DataTable = CreateDataTable()
' -- テーブルに値を作成
For Each _id As String In Ids
Dim _row As DataRow = WorkData.NewRow()
_row.Item(カラム名.ID) = _id
_row.Item(カラム名.名称) = "名称" + _id
_row.Item(カラム名.年齢) = Integer.Parse(_id + "0")
WorkData.Rows.Add(_row)
Next
' --- 検索と取得
Dim Fillter As String = カラム名.ID.ToString() + " ='2'"
Dim rows As DataRow() = WorkData.Select(Fillter)
' -- 値を取得
If rows.Count > 0 Then
MessageBox.Show(rows(0).Item(カラム名.名称),
"IDが[2]の" + カラム名.名称.ToString() + "を取得",
MessageBoxButtons.OK,
MessageBoxIcon.Information)
End If
End Sub
Private Function CreateDataTable() As DataTable
Dim returnValue As DataTable = New DataTable()
For Each value As カラム名 In [Enum].GetValues(GetType(カラム名))
' --- Enumからテーブルを作成する
If value.Equals(カラム名.年齢) Then
' --- int型でカラム作成
returnValue.Columns.Add(value.ToString(), Type.GetType("System.Int32"))
Else
' --- string型でカラム作成
returnValue.Columns.Add(value.ToString(), Type.GetType("System.String"))
End If
Next
Return returnValue
End Function
End Class
まとめ
個人的にDataTableを扱う際はなるべく列挙型を使用したいと思っています。
メリットとしては
・カラム名を探すのが簡単
・カラム名の打ち間違いが減る
・プログラムの追加や改修が楽になる
などがあげられると思います。
大きいシステムになってくると仕様書からカラム名を探す際もカラム数が多くて一苦労です。
なので今回は列挙型でのデータテーブルの操作を簡単にですが、紹介させていただきました。
ご清聴ありがとうございました。