DataTableをコピーするサンプルです。
テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
DataTable dt = new DataTable("DataTable01");
DataTable dt2 = new DataTable("DataTable02");
DataRow dr = null;
// 列を定義します。
dt.Columns.Add("A", Type.GetType("System.String"));
dt.Columns.Add("B", Type.GetType("System.String"));
dt.Columns.Add("C", Type.GetType("System.String"));
// データを格納します。
for (int i = 1; i <= 5; i++)
{
dr = dt.NewRow();
dr["A"] = "A_" + i.ToString("00");
dr["B"] = "B_" + i.ToString("00");
dr["C"] = "C_" + i.ToString("00");
dt.Rows.Add(dr);
}
// Copyは構造と値をコピーします。
dt2 = dt.Copy();
// Cloneは構造だけコピーします。
// dt2 = dt.Clone();
|
5~16行まではdtに列を定義し、データを格納してます。
dtの中身はこうなってます。
18行目でdtをdt2へコピーしています。注意点はDataTableのCopy()はデータだけでなく
テーブルの構造までもコピーするという点です。dt2の中身をみるとdtと同様となってることが分かります。
同じ画像を使いまわしているわけではないです。
DataTableの名前まで同じになってます。
ちなみに21行目のClone()を行うと、データ構造だけコピーします。