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

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

目次

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

DataTableクラス

 

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

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

		Dim name1 = "田中"

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

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

5行目の「employee」はデータテーブルです。データテーブルの項目に「name」があるとします。
(このページの下にデータテーブルのイメージがあります)

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

 

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

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

		Dim name1 = "田中"

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

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

5行目の「employee」はデータテーブルです。データテーブルの項目に「name」があるとします。
(このページの下にデータテーブルのイメージがあります)

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

 

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

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

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

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

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

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

3,10行目の「employee」はデータテーブルです。データテーブルの項目に「id」と「name」があるとします。(このページの下にデータテーブルのイメージがあります)

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

 

Selectする対象のDataTable

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

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

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

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

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

		employee.AcceptChanges()
	End Sub
End Module

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

関連の記事

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

△上に戻る