DataTable1から抽出したものを別のDataTableへ保存するには への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 大池  (社会人) 投稿日時 2009/12/28 02:15:16
魔界の仮面弁士さま

早速のご指導ありがとうございます。

tbl.ImportRow(dr)

でうまくいきました。
誠にありがとうございました。
今後ともよろしくお願いいたします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/12/28 01:35:21
データの追加という意図ならば、DataRow の ItemArray プロパティを使えるかと思います。
RowState も引き継ぐのあれば、DataTable の ImportRow メソッドを試してみてください。
投稿者 大池  (社会人) 投稿日時 2009/12/28 00:07:39
いつもお教えを乞うばかりで恐縮です。
XPでVB2008Express Editionを使っています。

DataTable1のデータから別のDataTableへ保存する勉強のために次のようなテストをしましたが、
 tbl.Rows.Add(dr.id, dr.名前, dr.フリガナ, dr.生誕年, dr.所属)
の部分で各項目(dr.id, dr.名前,・・・)を記述しないで一括して保存するすることはできないものでしょうか?ご教授のほどよろしくお願いいたします。

 
        ' (1): データ設定
        Dim dt As DataSet1.DataTable1DataTable = DataSet1.DataTable1
        dt.AddDataTable1Row("001", "勝", "カツ", "1823", "幕府")
        dt.AddDataTable1Row("002", "岩倉", "イワクラ", "1825", "公家")
        dt.AddDataTable1Row("003", "西郷", "サイゴウ", "1828", "薩摩")
        dt.AddDataTable1Row("004", "大久保", "オオクボ", "1830", "薩摩")
        dt.AddDataTable1Row("005", "木戸", "キド", "1833", "長州")
        '
        ' (2): データ表示
        'DataGridView1.DataSource は DataTable1BindingSource
        '
        ' (3): DataSet1.DataTable1のデータから抽出してtblへ保存
        Dim tbl As DataTable = New DataSet1.DataTable1DataTable
        For Each dr As DataSet1.DataTable1Row In DataSet1.DataTable1
            If CType(dr.生誕年, Integer) >= 1830 Then
                tbl.Rows.Add(dr.id, dr.名前, dr.フリガナ, dr.生誕年, dr.所属)
            End If
        Next
        '  (4) : tbl の表示
        DataGridView2.DataSource = tbl
        '