LoginSignup
2
3

【VB.NET】DataTableについて

Last updated at Posted at 2023-10-18

きっかけ

VB.NETでデータベースのデータを扱ったときに、DataSetやDataTableが出てきて違いがわからなかった。
DataTableを使用してセルの値を取得する方法を理解することに苦労したため、備忘録としてまとめる。

DataSetとDataTableの違い

Excelに例えた場合
DataSet:Bookにあたる
DataTable:Sheetにあたる
DataSet.png

その他

・行(Rows)と列(Columns)は0から数える。
・列の指定は列名でも可能。(例:Columns("name"))

DataTableの値を出力する方法

DataTableの例
image.png

dim dt as DataTable = ds.Tables(0)

for Each row as DataRow In dt.Rows
    Console.Write(row("id").ToString & " ")
    Console.Write(row("名前").ToString & " ")
    Console.Write(row("年齢").ToString & " ")
Next

<出力結果>
1 鈴木 10
2 佐藤 20
3 田中 30
4 天野 40
5 武藤 50

特定のセルの値を取得する方法

dim val as String = dt.rows(1).item(1).ToString

<出力結果>
佐藤

特定の列の値を集計する方法

'書き方1 
Dim totalAge As Integer = dt.Rows.Cast(Of DataRow).Sum(Function(row) CInt(row("年齢")))

' 書き方2
Dim totalAge As Integer = 0
 For Each row As DataRow In dt.Rows
     totalAge += row("年齢")
 Next

デバッグでDataTableの中身を確認する方法

1.任意の位置で実行を止める。
2.DataTableが入っている変数にカーソルを合わせる、または
 ウォッチを見たときに虫眼鏡アイコン 表示 をクリックする。
image.png
3.DataTable Visualizerが起動し、DataTableの中身を確認できる。
image.png

参考サイト

DataTableに関する内容
https://dreamparadaisu.com/visualbasic_12/
https://hironimo.com/prog/vbnet/datatable/

DataTableのループ処理
https://zukucode.com/2017/10/vbnet-datatable-loop.html

特定のセルの値を取得する
https://rikaix.hatenablog.com/entry/2019/07/27/234831

特定の列を集計する
https://zukucode.com/2019/11/vbnet-datatable-sum.html

DataTableの中身の確認方法
http://ht-jp.net/blog/pc/c/vs-dataset-v

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3