[.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);
}

あまりスマートではない感じだが、覚えておくと便利そうだ。

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する