次は、データテーブルのコピー機能についてです。
これも、よく利用するのでメモメモ。
データテーブルのコピー機能には、以下の2種類があります。
スキーマのみのコピーには、以下のメソッドを利用します。
DataTable.Clone()
スキーマとデータのコピーには、以下のメソッドを利用します。
DataTable.Copy()
用途によって、使い分けます。
よく利用するのは、Cloneの方ですかね。データの処理を行う上で
Aのデータテーブルと同じ構造のBを新たに作成して、Bにデータを追加して
いって、最後にマージするとかはよくやります。
マージについては、次回メモする予定です。
以下、サンプルです。
#region DataTableSamples-03 public class DataTableSamples03 : IExecutable { public void Execute() { DataTable tableA = new DataTable(); tableA.Columns.Add("Val", typeof(int)); for(int i = 0; i < 10; i++) { tableA.LoadDataRow(new object[]{i}, true); } Console.WriteLine("[TableA] ColumnCount = {0}" , tableA.Columns.Count); Console.WriteLine("[TableA]RowCount = {0}" , tableA.Rows.Count); // // tableAのスキーマをtableBにコピー. // (データはコピーしない。) // DataTable tableB = tableA.Clone(); Console.WriteLine("[TableB] ColumnCount = {0}" , tableB.Columns.Count); Console.WriteLine("[TableB]RowCount = {0}" , tableB.Rows.Count); // // tableAのスキーマとデータをtableCにコピー. // DataTable tableC = tableA.Copy(); Console.WriteLine("[TableC] ColumnCount = {0}" , tableC.Columns.Count); Console.WriteLine("[TableC]RowCount = {0}" , tableC.Rows.Count); } } #endregion