【C#】データテーブルから行を取得する【DataTable】

2020年2月10日

行を取得する(index)

「dt.Rows[index]」の [index]部分に、

インデックスを指定することで行が取得できます。

ここでは、インデックス 0 を指定して、行を取得しています。


    // データテーブルの初期化
    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");

    /* 
      今回の内容はここから
    */ 
    // 行を取得する(index)
    DataRow dr = dt.Rows[0];


行から値を取得する(index+index)

「dt.Rows[index][index]」の

先頭の[index]指定部分が、行に対するインデックス指定

最終の[index]指定部分が、列に対するインデックス指定

こうすることで、○行目の○○の値が取得可能となります。

ここでは、 行インデックスの指定は 1 、 列インデックスの指定は 0 で値を取得しています。

コンソールに出力される値は、ぶどうになります。


    // データテーブルの初期化
    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");

    /* 
      今回の内容はここから
    */ 
    // 行から値を取得する(index+index)
    Console.WriteLine(dt.Rows[1][0]);


行から値を取得する(index+文字列)

「dt.Rows[index][“XXX"]」の

先頭の[index]指定部分が、行に対するインデックス指定

最終の[“XXX"]指定部分が、列に対する列名指定

こうすることで、○行目の○○の値が取得可能となります。

ここでは、 行インデックスの指定は 1 、 列名の指定は HINMEI(品名) で値を取得しています。

コンソールに出力される値は、ぶどうになります。


    // データテーブルの初期化
    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");

    /* 
      今回の内容はここから
    */ 
    // 行から値を取得する(index+文字列)
    Console.WriteLine(dt.Rows[1]["HINMEI"]);


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

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

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


        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");
            // 行追加
            dt.Rows.Add("りんご", "3", "50", "150");
            dt.Rows.Add("ぶどう", "1", "200", "200");
            dt.Rows.Add("みかん", "10", "30", "300");

            /* 
              今回の内容はここから
            */ 
            // 行を取得する方法(index)
            DataRow dr = dt.Rows[0];

            // 行から値を取得する方法(index+index)
            Console.WriteLine(dt.Rows[1][0]);

            // 行から値を取得する方法(index+文字列)
            Console.WriteLine(dt.Rows[1]["HINMEI"]);
        }


まとめ

今回は複数の方法で、行を取得するソースコードを記載しました。

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


Microsoft 公式ページ

DataRowCollection クラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datarowcollection?view=netframework-4.0