VB.NET DataTableをコピーするサンプル

VB.NETのDataTableをコピーするサンプルです。

目次

サンプル DataTableクラス
  テーブルの構造と値をコピーする(copy)
  テーブル構造のみコピーする(clone)

DataTableクラス

 

テーブルの構造と値をコピーする(copy)

テーブルの構造と値をコピーするサンプルです。

Module Module1
	Sub Main()
		'テーブル作成
		Dim employee As New DataTable("社員テーブル")
		employee.Columns.Add("id") '項目を追加
		employee.Columns.Add("name")
		employee.Columns.Add("romaji")

		'1行目を作成
		Dim row As DataRow
		row = employee.NewRow
		row("id") = "1" '値を追加
		row("name") = "鈴木"
		row("romaji") = "suzuki"
		employee.Rows.Add(row) '1行目をテーブルに追加

		employee.AcceptChanges()

		'コピー
		Dim employee2 As DataTable = employee.Copy

		employee.Rows(0).Item("name") = "test"

		Console.WriteLine(employee.Rows(0).Item("name")) 'test
		Console.WriteLine(employee2.Rows(0).Item("name")) '鈴木
	End Sub
End Module

4~17行目は、新規でデータテーブルを作成しています。
20行目は、Copyメソッドでテーブルの構造と値をコピーしています。
22行目は、コピー元の値を変更しています。
24行目は、コピー元です。値は変更されています。
25行目は、コピー先です。値は変更されていません。

 

テーブル構造のみコピーする(clone)

テーブル構造のみコピーするサンプルです。

Module Module1
	Sub Main()
		'テーブル作成
		Dim employee As New DataTable("社員テーブル")
		employee.Columns.Add("id") '項目を追加
		employee.Columns.Add("name")
		employee.Columns.Add("romaji")

		'1行目を作成
		Dim row As DataRow
		row = employee.NewRow
		row("id") = "1" '値を追加
		row("name") = "鈴木"
		row("romaji") = "suzuki"
		employee.Rows.Add(row) '1行目をテーブルに追加

		employee.AcceptChanges()

		'コピー
		Dim employee2 As DataTable = employee.Clone

		'Console.WriteLine(employee2.Rows(0).Item("name"))

		'1行目を作成
		Dim row2 As DataRow
		row2 = employee2.NewRow
		row2("id") = "001" '値を追加
		row2("name") = "田中"
		row2("romaji") = "tanaka"
		employee2.Rows.Add(row2) '1行目をテーブルに追加
		employee2.AcceptChanges()

		Console.WriteLine(employee2.Rows(0).Item("name")) '田中
	End Sub
End Module

4~17行目は、新規でデータテーブルを作成しています。
20行目は、Cloneメソッドでテーブル構造のみコピーしています。
22行目は、コピー先の値を表示しようとしますが値はないためエラーになります。
25行目からは、コピー先のデータテーブルに値をセットしています。

関連の記事

VB.NET DataTableの行を追加/変更/削除する
VB.NET DataTableをSelectで行を取得する
VB.NET DataViewのサンプル

△上に戻る