VB.NET DataTable 指定した列を抽出

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

今回は、DataTableの指定した列を抽出する方法を紹介します。

DataTableから、指定した項目だけを取り出して使用したい時がありましたので、備忘録として残しておきます。

ちなみに行の抽出は、Selectを使います。

VB.NET DataTable 指定した列を抽出

使い方

さっそく使い方を見てみましょう。

Dim dtView As New DataView(datatable)
datatable = dtView.ToTable(False, 列名)

もしくは

datatable = datatable.DefaultView.ToTable(False, 列名})

DataViewを使用することで指定した列のみを抽出することができます。

 

ToTableの第2引数の【列名】のところに、DataTableの列名を入力しましょう。

複数の列がある場合は、配列にすることで指定した全ての列を取得することができます。

 

第1引数は、重複削除のフラグなので、今回は【False】で大丈夫です。

DataTable 列の抽出 1項目

例で使用するデータテーブルは、こちら

Dim dt As New DataTable("people")
dt.Columns.Add("name")
dt.Columns.Add("old")
dt.Columns.Add("height")

'DataRow宣言
Dim dtRow As DataRow

For i As Integer = 0 To 9
    '1行目
    dtRow = dt.NewRow
    dtRow("name") = "ひろ"
    If i < 5 Then
        dtRow("old") = "10"
    Else
        dtRow("old") = "20"
    End If

     dtRow("height") = (100 + i * 10).ToString

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

それでは、【old】の列を抽出しましょう。

Dim dtView As New DataView(dt)
dt = dtView.ToTable(False, "old")

結果

第2引数に【old】と指定するだけで、抽出できました。

 

DataTable 列の抽出 複数項目

複数項目を抽出したい場合

Dim dtView As New DataView(dt)
dt = dtView.ToTable(False, {"old", "Height"})

結果

指定した2項目が取得できました。

まとめ

Dim dtView As New DataView(dt)
dt = dtView.ToTable(False, 列名)

もしくは

dt = dt.DefaultView.ToTable(False, 列名})

 

これで、DataTableの列の取得ができます。

 

VB.NETの記事一覧

関連記事

 

 

おすすめの記事