VB.NET DataTable 使い方

こんにちは、ひろにも です。

今回は、VB.NETのDataTableについて紹介していきます。今回の記事はデータベースの基礎知識があるとわかりやすいです。なくても大丈夫です!

個人的に、DataTableはシステム開発する時にめちゃめちゃ使ってました。

理解できるととても便利なので、VB.NETを勉強している人は是非、使ってほしい型です!

Sqlserverのデータをデータテーブルに格納する方法は、別記事でまとめています。

それでは、始めていきましょう!

DataTableの書き方

書き方を忘れることが多いので、備忘録用に初めに書き方を記載しておきます。

'DataTableの変数宣言
Dim dt As New DataTable("people")

'列追加
dt.Columns.Add("列名")

'行の設定
Dim dtRow As DataRow
dtRow = dt.NewRow
dtRow("列名") = "任意の値"

'行追加
dt.Rows.Add(dtRow)

DataTableとは

DataTableとは、メモリー上にDB(データベース)を持たせる、DataSetと呼ばれる型の子要素のことです。

つまり、DBのテーブルをそのまま、変数にするための型ということになります。

また、DataTableの子要素として、DataRowというのがあり、DataTableの1行分がDataRowです。

まとめると、

  • DataSet = DB(データベース)
  • DataTable = データベースのテーブル
  • DataRow = 1行分のデータ

 

データベース以外にも、Excelで言うと

  • DataSet = エクセルのBook
  • DataTable = エクセルのシート
  • DataRow = エクセルシートの1行

こんな、イメージです。

DataTableの使い方

まず、宣言の仕方から見ていきましょう。

① peopleという名前でテーブルを作成します。

'DataTableの変数宣言
Dim dt As New DataTable("people")

 

次に、peopleテーブルの列情報(横)を作ります。

② 名前(name)、年齢(old)、身長(height)の3項目を作成しましょう。

dt.Columns.Add("name")
dt.Columns.Add("old")
dt.Columns.Add("height")

 

次に、DataRow:行の情報(縦)を作ります。

③ 1行目{name:ひろ、old:15、height:150} 2行目{name:にも、old:20、height:160}

'1行目
dtRow = dt.NewRow
dtRow("name") = "ひろ"
dtRow("old") = "15"
dtRow("height") = "150"
'行追加
dt.Rows.Add(dtRow)

'2行目
dtRow = dt.NewRow
dtRow("name") = "にも"
dtRow("old") = "20"
dtRow("height") = "160"
'行追加
dt.Rows.Add(dtRow)

 

これで、DataTableを作成することができました。

プログラムの例

'データテーブル宣言
Dim dt As New DataTable("people")

'列項目作成
dt.Columns.Add("name")
dt.Columns.Add("old")
dt.Columns.Add("height")

'DataRow宣言
Dim dtRow As DataRow

'1行目
dtRow = dt.NewRow
dtRow("name") = "ひろ"
dtRow("old") = "15"
dtRow("height") = "150"
'行追加
dt.Rows.Add(dtRow)

'2行目
dtRow = dt.NewRow
dtRow("name") = "にも"
dtRow("old") = "20"
dtRow("height") = "160"
'行追加
dt.Rows.Add(dtRow)

'結果出力
For i As Integer = 0 To dt.Rows.Count - 1
    For k As Integer = 0 To dt.Columns.Count - 1
        Console.Write(dt.Rows(i).Item(k).ToString & " ")
    Next
    Console.WriteLine()
Next

 

出力結果

ひろ 15 150 
にも 20 160 

 

データセットの使い方

上記と同様にMoneyテーブルを作成します。

Dim dt_money As New DataTable("money")
dt_money.Columns.Add("name")
dt_money.Columns.Add("money")

'DataRow宣言
Dim dtRow_money As DataRow

'1行目
dtRow_money = dt_money.NewRow
dtRow_money("name") = "ひろ"
dtRow_money("money") = "200000"
'行追加
dt_money.Rows.Add(dtRow_money)

'2行目
dtRow_money = dt_money.NewRow
dtRow_money("name") = "にも"
dtRow_money("money") = "1000000"
'行追加
dt_money.Rows.Add(dtRow_money)

 

作成した2つのテーブル(people,money)をDataSetに格納していきます。

Dim ds As New DataSet
ds.Tables.Add(dt)
ds.Tables.Add(dt_money)a

 

以上でDataSetは完成です。

最後にソースをまとめておきます。

プログラムのまとめ

' 1テーブル目
Dim dt As New DataTable("people")
dt.Columns.Add("name")
dt.Columns.Add("old")
dt.Columns.Add("height")

'DataRow宣言
Dim dtRow As DataRow

'1行目
dtRow = dt.NewRow
dtRow("name") = "ひろ"
dtRow("old") = "15"
dtRow("height") = "150"
'行追加
dt.Rows.Add(dtRow)

'2行目
dtRow = dt.NewRow
dtRow("name") = "にも"
dtRow("old") = "20"
dtRow("height") = "160"
'行追加
dt.Rows.Add(dtRow)

' 2テーブル目
Dim dt_money As New DataTable("money")
dt_money.Columns.Add("name")
dt_money.Columns.Add("money")

'DataRow宣言
Dim dtRow_money As DataRow

'1行目
dtRow_money = dt_money.NewRow
dtRow_money("name") = "ひろ"
dtRow_money("money") = "200000"
'行追加
dt_money.Rows.Add(dtRow_money)

'2行目
dtRow_money = dt_money.NewRow
dtRow_money("name") = "にも"
dtRow_money("money") = "1000000"
'行追加
dt_money.Rows.Add(dtRow_money)

'--------------------
' dataSet作成
'--------------------
Dim ds As New DataSet
ds.Tables.Add(dt)
ds.Tables.Add(dt_money)

For tableCount As Integer = 0 To ds.Tables.Count - 1
    For rowIndex As Integer = 0 To ds.Tables(tableCount).Rows.Count - 1
        For colIndex As Integer = 0 To ds.Tables(tableCount).Columns.Count - 1
            Console.Write(ds.Tables(tableCount).Rows(rowIndex).Item(colIndex).ToString)
        Next
        Console.WriteLine()
    Next
Next

 

以上でDataTableの基本的な使い方は終わりです。

始めにも言いましたが、DataTableはかなり使えるので、しっかりとやり方を覚えていおいてほしいですね!

 

 

VB.NETの記事一覧

 

おすすめの記事