DataTableをselectで取り出したDataRowの配列をDataTableに変換するには、CopyToDataTable()をつかいます。
たとえば、DataTableからSelectで行を取り出すと、DataRowの配列で返されますが、それをまとめてTableに変換するには、次のようにします。
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(); DataColumn[] dc = { new DataColumn("name", typeof(string)), new DataColumn("age", typeof(int)) }; dt.Columns.AddRange(dc); DataRow dr = dt.NewRow(); dr["name"] = "tanaka"; dr["age"] = "18"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["name"] = "inoue"; dr["age"] = "24"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["name"] = "yamada"; dr["age"] = "19"; dt.Rows.Add(dr); DataRow[] selectedRows = dt.Select("age<20");//ageが20未満の人をSelectで取り出す DataTable selectedTable = selectedRows.CopyToDataTable();//selectedRows をDataTableに変換 |
ちなみに、DataTableの内容をごっそりDataRowに変換したかったら、単に、
1 |
DataRow[] selectedRows = dt.Select(); |
とします。
参考になったサイトさん:
http://devlights.hatenablog.com/entry/20090130/p1