VB.NET DataTableをSelectで行を取得する

VB.NETのDataTableをSelectで行を取得するサンプルです。

目次

サンプル DataTableクラス
  一致するデータを取得する
  一致しないデータを取得する
  データ取得後にソートする
参考 Selectする対象のDataTable

DataTableクラス

一致するデータを取得する

一致するデータを取得するサンプルです。

		Dim name1 = "田中"

		' 条件に一致する(=)
		Dim d1 As DataRow()
		d1 = syain.Select("name = '" + name1 + "'")

		For Each d As DataRow In d1
			Console.WriteLine(d("name").ToString) '田中
		Next

4行目の変数d1は、DataRow型で複数の値を保持できます。
5行目のSelectの引数の中の=で一致するデータを取得します。

一致しないデータを取得する

一致しないデータを取得するサンプルです。

		Dim name1 = "田中"

		' 条件に一致しない(<>)
		Dim d2 As DataRow()
		d2 = syain.Select("name <> '" + name1 + "'")

		For Each d As DataRow In d2
			Console.WriteLine(d("name").ToString) '佐藤 鈴木
		Next

4行目の変数d2は、DataRow型で複数の値を保持できます。
5行目のSelectの引数の中の<>で一致しないデータを取得します。

データ取得後にソートする

データ取得後にソートするサンプルです。

		Dim name1 = "田中"

		Dim d2 As DataRow()
		d2 = syain.Select("id >= '2'", "name")

		For Each d As DataRow In d2
			Console.WriteLine(d("name").ToString) '佐藤 田中
		Next

		Dim d3 As DataRow()
		d3 = syain.Select("id >= '2'", "name desc")

		For Each d As DataRow In d3
			Console.WriteLine(d("name").ToString) '田中 佐藤
		Next

4行目は、2つめの引数にソートする項目を指定しています。昇順になります。
11行目も2つめの引数にソートする項目を指定しています。descがあるので降順になります。

Selectする対象のDataTable

以下は、Selectする対象のDataTableです。テーブルを作成し3行追加しています。

Module Module1
	Sub Main()
		'テーブル作成
		Dim syain As New DataTable("社員テーブル")
		syain.Columns.Add("id") '項目を追加
		syain.Columns.Add("name")
		syain.Columns.Add("romaji")

		'1行目を作成
		Dim row As DataRow
		row = syain.NewRow
		row("id") = "1" '値を追加
		row("name") = "鈴木"
		row("romaji") = "suzuki"
		syain.Rows.Add(row) '1行目をテーブルに追加

		'2行目を作成
		row = syain.NewRow
		row("id") = "2"
		row("name") = "田中"
		row("romaji") = "tanaka"
		syain.Rows.Add(row) '2行目をテーブルに追加

		'3行目を作成
		row = syain.NewRow
		row("id") = "3"
		row("name") = "佐藤"
		row("romaji") = "sato"
		syain.Rows.Add(row) '3行目をテーブルに追加

		syain.AcceptChanges()
	End Sub
End Module

DataTableを作成し、3行データを追加しています。

関連の記事

VB.NET DataTableの行を追加/変更/削除する

△上に戻る