DataTable1からDataTable2へDataRowを移動する必要があるのですが、
移動先のテーブルにAddする際、「この行は既に別のテーブルに属しています」という
例外が発生してしまいます。
移動元のテーブルからは既に除去しており、ウォッチリストで見ても
dt1は空になっているようです。
解決方法をご存知の方がおりましたら、回答のほどよろしくお願いします。
再現可能と思われるコードは以下のようになります。
private
{
}
コメント

- 2:sheile
- 2007/08/11 12:22
回答ありがとうございます。
ImportRowで処理自体は出来たのですが、ImportRowの場合、
新しくDataRowインスタンスを生成してしまうのがネックになっています。
行・列ともに数が多い為、速度面を鑑みて同一インスタンスを
移動させたいと思っています。
どなたかわかるかたはおりませんでしょうか?

- 3:PANTO
- 2007/08/13 18:14
答えじゃなくてすいません。
何とかできないか試してみたのですが、
既存の仕組みではできないようです。
速度が気になるということでしたら、
1段階外側のループで、
よい方法がないかを検討するというのも手ではないでしょうか。

- 5:ゲスト
- 2007/08/14 17:44
.NETを使っているからと言って、遅いままで我慢する理由はないと思いますけど。そのためのコストとのトレードオフですが、遅いよりは早い方が良いんじゃないでしょうか。
とはいえ、.NETはもう少し速くなってほしいですね。

- 6:sheile
- 2007/08/15 00:27
PANTOさん回答ありがとうございます。
今回作成しているシステムはWebシステム(ASP.NET)であり、
他の場所ではそこまで重い処理は無い予定です。
この処理が必要な場所はデータ件数・カラム数共に
多いことが予想される為、少しでも高速化を図りたいと思い、
質問させて頂きました。
前へ 1 次へ![]()
コメントする
[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。
[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。







ImportRow使えばできると思います。
dt2.ImportRow(deleteRow);