2013年11月27日水曜日

【VB.NET】DataTableのコピー

DataTableのコピーです。

  1. DataTable.Clone
    DataTableのスキーム(構成)のみをコピーします。コピー元の空のテーブルが作られます。
  2. DataTable.Copy元のテーブルをデータごとコピーします。
  3. DataTable.Select(filter).CopyToDataTable
    抽出したデータをテーブルにコピーします。
以下使用例です。
フォームにコントロールを配置

Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
        'サンプルデータテーブル
        Dim sampleTable As New DataTable
        sampleTable.Columns.Add("ItemCD", Type.GetType("System.String"))
        sampleTable.Columns.Add("ItemName", Type.GetType("System.String"))
        sampleTable.Columns.Add("Price", Type.GetType("System.Double"))
        sampleTable.Columns.Add("UnitSales", Type.GetType("System.Double"))
        sampleTable.Columns.Add("SalesAmount", Type.GetType("System.Double"))
 
        sampleTable.Rows.Add("001", "商品001", 100, 8, 100 * 8)
        sampleTable.Rows.Add("003", "商品003", 130, 5, 130 * 5)
        sampleTable.Rows.Add("001", "商品001", 100, 3, 100 * 3)
        sampleTable.Rows.Add("002", "商品002", 120, 6, 120 * 6)
        sampleTable.Rows.Add("002", "商品002", 120, 5, 120 * 5)
        sampleTable.Rows.Add("003", "商品003", 130, 7, 130 * 7)
        sampleTable.Rows.Add("003", "商品003", 130, 1, 130 * 1)
        sampleTable.Rows.Add("002", "商品002", 120, 3, 120 * 3)
        sampleTable.Rows.Add("001", "商品001", 100, 9, 100 * 9)
 
        'サンプルデータテーブルを表示
        Me.DataGridView1.DataSource = sampleTable
 
        'サンプルデータテーブルのClone
        Dim newTable1 As DataTable = sampleTable.Clone
        Me.DataGridView2.DataSource = newTable1
 
        'サンプルデータテーブルのCopy
        Dim newTable2 As DataTable = sampleTable.Copy
        Me.DataGridView3.DataSource = newTable2
 
        'サンプルデータテーブルから抽出したデータをテーブルへCopy
        Dim newTable3 As DataTable = sampleTable.Select("ItemCD = '001'").CopyToDataTable
        Me.DataGridView4.DataSource = newTable3
 
    End Sub
End Class
実行結果

0 件のコメント:

コメントを投稿