データ操作

[C#] DataTableをコピーする(Copy()、Clone())

DataTableをコピーする方法です。

テーブル構造のみコピーする方法と、
テーブル構造とデータの両方をコピーする2パターンあります。

  • テーブル構造とデータのコピー → .Copy() メソッドを使用
  • テーブル構造のみコピー → .Clone() メソッドを使用

サンプル(テーブル構造とデータをコピーする)

例1)DataTableのテーブル構造とデータコピーする


using System.Data;

// データテーブルの生成
DataTable dt1 = new DataTable("ItemTable");
dt1.Columns.Add("Name", typeof(string));
dt1.Columns.Add("Price", typeof(int));
dt1.Rows.Add("みかん", 50);
dt1.Rows.Add("ぶどう", 300);
dt1.Rows.Add("りんご", 150);

// dt1をコピーしてdt2を作成する
DataTable dt2 = dt1.Copy();

// dt2に"バナナ"を追加してみる
dt2.Rows.Add("バナナ", 200);

結果

dt1 → {みかん、ぶどう、りんご}
dt2 → {みかん、ぶどう、りんご、バナナ}

サンプル(テーブル構造のみコピーする)

例2)DataTableのテーブル構造のみコピーする


using System.Data;

// データテーブルの生成
DataTable dt1 = new DataTable("ItemTable");
dt1.Columns.Add("Name", typeof(string));
dt1.Columns.Add("Price", typeof(int));
dt1.Rows.Add("みかん", 50);
dt1.Rows.Add("ぶどう", 300);
dt1.Rows.Add("りんご", 150);

// dt1をクローンしてdt2を作成する
DataTable dt2 = dt1.Clone();

// dt2に"バナナ"を追加してみる
dt2.Rows.Add("バナナ", 200);

結果

dt1 → {みかん、ぶどう、りんご}
dt2 → {バナナ}

備考

  • .Copy、.Cloneでコピーすると参照コピーではなく、物理的にDataTableが複製されます。

関連記事

-データ操作
-