- - PR -
DataTableへの行追加について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-13 01:31
いつも参考にさせて頂いています。
質問させて頂きたいのは、VB.net2005にて1つのDataTableから 条件に合う行のみを抜き出した別のDataTableを作成し、そこへ 元のDataTableで作成した新規行を追加したいのです。 サンプルコード Dim dt As DataTable Dim dt2 As DataTable Dim vw As DataView Dim row As DataRow dt = New DataTable dt.Columns.Add("A", GetType(Integer)) 'テスト用データの投入 For i As Integer = 0 To 5 row = dt.NewRow row("A") = i dt.Rows.Add(row) Next 'ViewからDataTableを作成 vw = dt.DefaultView vw.RowFilter = "A >= 3" dt2 = vw.ToTable() '元のDataTableの新規行を作成 row = dt.NewRow row("A") = 6 'Viewから作成したDataTableに行を追加 dt2.Rows.Add(row) 以上のようなコードで実行すると、dt2.Rows.Add(row)の前後で エラーは発生しませんがdt2.Rows.Countの値に変化がありません。 何か処理が足りないのでしょうか? ご存知の方がいらっしゃればご教授頂きたく、よろしくお願いします。 (dt2に行を追加する方法は他にいろいろありましょうが、エラーが 発生しないのに行が追加されない事が不思議なのです。) | ||||||||
|
投稿日時: 2007-09-13 08:06
さかもとと申します。
サンプルコードですが、今の状態だとエラーで落ちるはずです。 dt2.Rows.Add(row) の部分で。エラー:「この行は既に別のテーブルに属しています」 もしも、サンプルコードの記載漏れがあれば、ご提示頂ければと思います。 _________________ ------------------------------------------ 拝啓、さかもとと申します♪ | ||||||||
|
投稿日時: 2007-09-13 09:26
きつい言い方だけど参照ってのがわかってなさげ。
まずこれを何とかしないと根本的な解決にはならない。 | ||||||||
|
投稿日時: 2007-09-13 10:00
ご指摘ありがとうございます。
Rows.AddはImportRowの間違いです。 申し訳ありません。 | ||||||||
|
投稿日時: 2007-09-13 11:59
さかもとです。
エラーが発生しないのは「書かれている通りちゃんと動作している」からだと思います。 で。
これで追加したrow("A") = 6がちゃんと入っているかと思います。 _________________ ------------------------------------------ 拝啓、さかもとと申します。 [ メッセージ編集済み 編集者: さかもと 編集日時 2007-09-13 12:00 ] [ メッセージ編集済み 編集者: さかもと 編集日時 2007-09-13 12:58 ] | ||||||||
|
投稿日時: 2007-09-14 01:01
返信が遅くなりまして申し訳ありません。
元のDataTableに追加されていないから新しいDataTableに追加されない という事ですね。 ありがとうございました。 |
1