C# DataTableをSelectで行を取得する

C#のDataTableをSelectで行を取得するサンプルです。

目次

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

DataTableクラス

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

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

		string name1 = "田中";

		// 条件に一致する(=)
		DataRow[] d1 = employee.Select("name = '" + name1 + "'");

		foreach (DataRow data in d1)
		{
			Console.WriteLine(data["name"]); //田中
		}

4行目の「employee」はDataTableです。DataTableの項目に「name」があるとします。
(このページの下にDataTableのイメージがあります)

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

 

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

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

		string name1 = "田中";

		// 条件に一致する(=)
		DataRow[] d1 = employee.Select("name <> '" + name1 + "'");

		foreach (DataRow data in d1)
		{
			Console.WriteLine(data["name"]); //佐藤 鈴木
		}

4行目の「employee」はDataTableです。DataTableの項目に「name」があるとします。
(このページの下にDataTableのイメージがあります)

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

 

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

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

		DataRow[] d1 = employee.Select("id >= '2'", "name");

		foreach (DataRow data in d1)
		{
			Console.WriteLine(data["name"]); //佐藤 田中
		}

		DataRow[] d2 = employee.Select("id >= '2'", "name desc");

		foreach (DataRow data in d2)
		{
			Console.WriteLine(data["name"]); //田中 佐藤
		}

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

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

 

Selectする対象のDataTable

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

using System;
using System.Data;

class Test1
{
	static void Main()
	{
		// テーブル作成
		DataTable employee = new DataTable("社員テーブル");
		employee.Columns.Add("id", typeof(int));
		employee.Columns.Add("name", typeof(String));
		employee.Columns.Add("romaji", typeof(String));

		// 1行目を作成
		DataRow row;
		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();
	}
}

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

関連の記事

C# DataTableの行を追加/変更/削除する

△上に戻る