【C#】データテーブルから一致するデータ件数を取得する【DataTable】

2020年2月13日

データテーブルから一致するデータ件数を取得(件数なし)

「dt.Select()」でデータテーブルからデータを抽出した後に、

何件抽出できたのかを知りたい場合は、「dt.Select().Length」を使用します。

ここでは、抽出した結果の件数を、コンソールに出力しています。


    // データテーブルの初期化
    DataTable dt = new DataTable();

    // データテーブルの名前を指定
    dt.TableName = "FRUIT";

    // 列追加
    dt.Columns.Add("HINMEI");
    dt.Columns.Add("SURYO");
    dt.Columns.Add("TANKA");
    dt.Columns.Add("KINGAKU");

    /* 
      今回の内容はここから
    */ 
    // データテーブルから一致するデータ件数を取得(件数なし)
    Console.WriteLine(dt.Select().Length);
    
    // ログ出力内容
    // 0


データテーブルから一致するデータ件数を取得(件数あり+チェック)

「dt.Select()」でデータテーブルからデータを抽出時に、

条件式に当て込んで件数チェックを行う方法です。


    // データテーブルの初期化
    DataTable dt = new DataTable();

    // データテーブルの名前を指定
    dt.TableName = "FRUIT";

    // 列追加
    dt.Columns.Add("HINMEI");
    dt.Columns.Add("SURYO");
    dt.Columns.Add("TANKA");
    dt.Columns.Add("KINGAKU");
    // 行追加
    dt.Rows.Add("りんご", "3", "50", "150");
    dt.Rows.Add("ぶどう", "1", "200", "200");
    dt.Rows.Add("みかん", "10", "30", "300");

    /* 
      今回の内容はここから
    */ 
    // データテーブルから一致するデータ件数を取得(件数なし)
    if (dt.Select().Length == 0)
    {
        Console.WriteLine("データがありません");
    }
    else
    {
        Console.WriteLine("データがあります。");
    }

    // ログ出力内容
    // データがあります。



コピペですぐ試せるソースコード

上記で記載した2点のソースコードをまとめました。

ソースコードをコピペするとそれぞれの動作が確認できると思います。


        private void DataTable_Get_Row_Item()
        {
            DataTable dt = new DataTable();

            // データテーブルの名前を指定
            dt.TableName = "FRUIT";

            // 列追加
            dt.Columns.Add("HINMEI");
            dt.Columns.Add("SURYO");
            dt.Columns.Add("TANKA");
            dt.Columns.Add("KINGAKU");

            /* 
              今回の内容はここから
            */ 
       
           // データテーブルから一致するデータ件数を取得(件数なし)
           Console.Write(dt.Select().Length);
            
            // 行追加
            dt.Rows.Add("りんご", "3", "50", "150");
            dt.Rows.Add("ぶどう", "1", "200", "200");
            dt.Rows.Add("みかん", "10", "30", "300");

            // データテーブルから一致するデータ件数を取得(件数あり+チェック)
            if (dt.Select().Length == 0)
            {
                Console.WriteLine("データがありません");
            }
            else
            {
                Console.WriteLine("データがあります。");
            }

            // ログ出力内容
            // データがあります。
        }


まとめ

抽出した結果の件数を条件に含めたいって思うときは多いと思います。

用途にあったやり方、自分のやりやすい実装を採用していきましょう。


Microsoft 公式ページ

DataTable.Select メソッド
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datarowcollection?view=netframework-4.0