【C#】データテーブルに行を追加する【DataTable】

2020年2月7日

行を追加する

「dt.Rows.Add()」を使用して、データテーブルに行を追加します。

Add()の引数に何も指定しない場合は、各列の値はデフォルトの値を元に行が追加されます。


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



行を追加する(文字列)

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

各列に対しての値を文字列で指定する事で、値を指定した行の追加が可能となります。

※今回は、全て文字列指定ですが、Add()の引数は object型の配列なので、文字列のみではありません。


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



行を追加する(DataRow)

「dt.Rows.Add(DataRow)」のDataRowの指定方法については、

DataColumn のように new DataRow() とすることはできません。

DataRow の場合は、 既に列構成が設定されているデータテーブルから

NewRow() とする事で、列構成を引き継いだ デフォルト値のみ設定された DataRow ができます。


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

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

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

    /* 
      今回の内容はここから
    */ 
    // 行を追加する(DataRow)
    DataRow dr = dt.NewRow();
    dt.Rows.Add(dr);


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

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

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


        private void DataTable_Row_Add()
        {
            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();

            // 行追加する方法(文字列)
            dt.Rows.Add("りんご", "3", "50", "150");

            // 行追加する方法(DataRow)
            DataRow dr = dt.NewRow();
            dt.Rows.Add(dr);
        }


まとめ

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

文字列以外を指定して行を追加する、

NewRow() した後に各列に対して値を設定してみてもいいかもしれません。

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


Microsoft 公式ページ

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


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