DataViewのToTableで抽出した行を基に新しいDataTableを作成します。
- DataView.ToTable()
DataViewで抽出した行を基に新しいDataTableを作成します。
- DataView.ToTable(TableName)
DataViewで抽出した行を基に新しいテーブル名でDataTableを作成します。
TableName‥新しいテーブル名
- DataView.ToTable(Distinct,ColumnName())
DataViewで抽出した行を基に重複した行を排除し新しいDataTableを作成します。
Distinct‥True:重複した行を排除する False:重複した行を排除しない
ColumnName()‥新しいテーブルに含まれる列名の配列
- DataView.ToTable(TableName,Distinct,ColumnName())
DataViewで抽出した行を基に重複した行を排除し新しい名前でDataTableを作成します。
TableName‥新しいテーブル名
Distinct‥True:重複した行を排除する False:重複した行を排除しない
ColumnName()‥新しいテーブルに含まれる列名の配列
以下使用例です。
|
フォームにコントロールを配置 |
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.TableName = "SampleTable"
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)
'SampleTableの表示
Me.DataGridView1.DataSource = sampleTable
'DataViewを設定
Dim dv As New DataView(sampleTable)
'行を抽出
dv.RowFilter = "ItemCD = '001' Or ItemCD = '003'"
'DataViewを表示
Me.DataGridView1.DataSource = dv
'抽出された行で新しいDataTableを作成
Dim newTable1 As DataTable = dv.ToTable()
Me.DataGridView2.DataSource = newTable1
'列を指定し重複した行の排除なしで新しいDataTableを作成
Dim newTable2 As DataTable = dv.ToTable(False, "ItemCD")
Me.DataGridView3.DataSource = newTable2
'列を指定し重複した行を排除して新しい名前のDataTableを作成
Dim newTable3 As DataTable = dv.ToTable("NewTable", True, "ItemCD", "ItemName")
Me.DataGridView4.DataSource = newTable3
End Sub
End Class
|
実行結果 |
C# バージョンも是非掲載お願いします!
返信削除しばらくサボっていて返信できませんでした。申し訳ないです。
削除自己解決していれば良いのですが…
C#につきましては時間えお見て掲載するようにしたいと思います。