データテーブルの行の検索の方法をサンプルコードを交えて解説したいと思います。
説明
方法 | メソッド名 |
説明 |
---|---|---|
① |
Select | 指定した条件を使って検索 |
② |
Find | 指定した主キーを使って検索 |
Select
・指定した条件に一致する行を返す。
・条件がない場合は全ての行を返す。
Find
・指定した主キーに一致する行を返す。
・指定した主キーに一致する行がない場合はnullを返す。
例
コード
using System; using System.Data; namespace Sample { /// <summary> /// メインプログラム /// </summary> public class Program { /// <summary> /// テーブルの行を検索 /// </summary> static void Main() { // テーブルの生成 var table = new DataTable(); // テーブルに列を追加 table.Columns.Add("名前", typeof(string)); table.Columns.Add("年齢", typeof(int)); // テーブルに主キーを設定 table.PrimaryKey = new DataColumn[] { table.Columns[0] }; // テーブルに行を追加 table.Rows.Add("一郎", 10); table.Rows.Add("二郎", 20); table.Rows.Add("三郎", 30); table.Rows.Add("四郎", 40); table.Rows.Add("五郎", 50); // テーブルの行を検索 DataRow[] selectedRows = table.Select("年齢 < 30"); // テーブルの行を出力 Console.WriteLine("Select"); foreach(DataRow dataRow in selectedRows) { foreach(DataColumn dataColumn in dataRow.Table.Columns) { Console.WriteLine(dataColumn.ColumnName + " : " + dataRow[dataColumn.ColumnName]); } Console.WriteLine(); } // テーブルの行を検索 DataRow? selectedRow = table.Rows.Find("五郎"); // テーブルの行を出力 Console.WriteLine("Find"); if(selectedRow != null) { foreach(DataColumn dataColumn in selectedRow.Table.Columns) { Console.WriteLine(dataColumn.ColumnName + " : " + selectedRow[dataColumn.ColumnName]); } } } } }
出力
Select 名前 : 一郎 年齢 : 10 名前 : 二郎 年齢 : 20 Find 名前 : 五郎 年齢 : 50