トップページに戻る
次のC#のサンプルへ
前のC#のサンプルへ
6-5 CopyToDataTable拡張メソッド
C#のサンプル
CopyToDataTable拡張メソッドの使用例です。
ソース
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
class Program
{
static void Main()
{
var BaseDt = new System.Data.DataTable();
BaseDt.Columns.Add("ID", typeof(int));
BaseDt.Columns.Add("Val", typeof(int));
BaseDt.Rows.Add(1, 11);
BaseDt.Rows.Add(2, 22);
BaseDt.Rows.Add(3, 33);
BaseDt.Rows.Add(4, 44);
IEnumerable<DataRow> query1 = BaseDt.Select();
IEnumerable<DataRow> query2 = BaseDt.Select().Where(X => (int)X["Val"] == 11);
DataTable dt1 = query1.CopyToDataTable();
DataTable dt2 = query2.CopyToDataTable();
//CopyToDataTable後は、DataRowを書き換えても影響を受けない
foreach (DataRow AnyRow in query1) {
AnyRow["Val"] = 999;
}
foreach (DataRow AnyRow in query1) {
Console.WriteLine("ID={0},Val={1}", AnyRow["ID"], AnyRow["Val"]);
}
foreach (DataRow AnyRow in dt1.Rows) {
Console.WriteLine("ID={0},Val={1}", AnyRow["ID"], AnyRow["Val"]);
}
}
}
実行結果
ID=1,Val=999
ID=2,Val=999
ID=3,Val=999
ID=4,Val=999
ID=1,Val=11
ID=2,Val=22
ID=3,Val=33
ID=4,Val=44
解説