VB.NETのDataTableをコピーするサンプルです。
目次
サンプル | DataTableクラス |
テーブルの構造と値をコピーする(copy) | |
テーブル構造のみコピーする(clone) |
DataTableクラス
- メモリ内のテーブルのように使用できます。
- 以下は、MicrosoftのDataTableクラスのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datatable?view=netcore-3.1
テーブルの構造と値をコピーする(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のサンプル