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

2020年2月6日

列を取得する(文字列)

「dt.Columns[“"]」のダブルコーテーション(“")中に

文字列で列名を指定する事で、列が取得できます。

ここでは、TANKA(単価)の列を取得していきます。


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

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

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

    /* 
      今回の内容はここから
    */ 
    // 列を取得する(文字列)
    DataColumn dc = dt.Columns["TANKA"];



列を取得する(インデックス)

「dt.Columns[index]」のindex部分に

列のインデックスを指定する事で、列が取得できます。

ここでは、(SURYO)数量の列を取得していきます。


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

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

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

    /* 
      今回の内容はここから
    */ 
    // 列を取得する(インデックス)
    DataColumn dc = dt.Columns[1];



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

2種類の列取得方法を1つのソースにまとめました。

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


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

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

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

            /* 
              今回の内容はここから
            */ 
            DataColumn dc;

            // 列名を指定して削除する(文字列)
            dc = dt.Columns["TANKA"];

            // 列を取得する(インデックス)
            dc = dt.Columns[1];
        }


まとめ

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

私的には、文字列で指定して列を取得する方法を推奨します。

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


Microsoft 公式ページ

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