C#のDataTableをSelectで行を取得するサンプルです。
目次
サンプル | DataTableクラス |
一致するデータを取得する | |
一致しないデータを取得する | |
データ取得後にソートする | |
参考 | Selectする対象のDataTable |
DataTableクラス
- メモリ内のテーブルのように使用できます。
- 以下は、MicrosoftのDataTableクラスのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datatable?view=netcore-3.1
一致するデータを取得する
一致するデータを取得するサンプルです。
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行データを追加しています。
関連の記事