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が複製されます。