Pages

2011/03/25

[.NET]この行は既に別のテーブルに属しています

DataTableに行を追加しようと思って、
.Rows.Add()
などとするのだが、DataRowがすでに存在している場合はエラーとなる。

insertを何度も発行するような処理を行いたい場合にはImportRowメソッドにより行を追加する。
DataTable.ImportRow メソッド

これはDataTableをSelectし、DataRow[]にあるデータを既存のDataTableに追加する場合などに重宝するだろう。
DataRow[] dtRows = dt2.Select("hoge = 1");
foreach (DataRow dr in dtRows )
{
    dt1.ImportRow(dtRows);
}

あまりスマートではない感じだが、覚えておくと便利そうだ。
Related Posts Plugin for WordPress, Blogger...