DataTable.Selectメソッドを使っての抽出
Module Module1
Sub Main()
'サンプルデータテーブル
Dim dt As New DataTable
dt.Columns.Add("NO", Type.GetType("System.Double"))
dt.Columns.Add("CATEGORY1", Type.GetType("System.String"))
dt.Columns.Add("NAME", Type.GetType("System.String"))
dt.Columns.Add("VAL1", Type.GetType("System.Double"))
dt.Rows.Add("0", "分類00", "名前0000", 15)
dt.Rows.Add("1", "分類00", "名前0001", 23)
dt.Rows.Add("2", "分類00", "名前0002", 75)
dt.Rows.Add("3", "分類00", "名前0003", 0)
dt.Rows.Add("4", "分類00", "名前0004", 69)
dt.Rows.Add("5", "分類00", "名前0005", 45)
dt.Rows.Add("6", "分類01", "名前0100", 96)
dt.Rows.Add("7", "分類01", "名前0101", 12)
dt.Rows.Add("8", "分類01", "名前0102", 69)
dt.Rows.Add("9", "分類01", "名前0103", 2)
dt.Rows.Add("10", "分類01", "名前0104", 2)
dt.Rows.Add("11", "分類01", "名前0105", 18)
dt.Rows.Add("12", "分類02", "名前0200", 8)
dt.Rows.Add("13", "分類02", "名前0201", 72)
dt.Rows.Add("14", "分類02", "名前0202", 95)
dt.Rows.Add("15", "分類02", "名前0203", 55)
dt.Rows.Add("16", "分類02", "名前0204", 22)
dt.Rows.Add("17", "分類02", "名前0205", 99)
dt.Rows.Add("18", "分類03", "名前0300", 74)
dt.Rows.Add("19", "分類03", "名前0301", 51)
dt.Rows.Add("20", "分類03", "名前0302", 68)
dt.Rows.Add("21", "分類03", "名前0303", 18)
dt.Rows.Add("22", "分類03", "名前0304", 99)
dt.Rows.Add("23", "分類03", "名前0305", 37)
'データを抽出
Dim rws() As DataRow = dt.Select("CATEGORY1 = '分類02'")
'抽出したデータを出力
For i = 0 To rws.Count - 1
Dim str As String = Nothing
For j = 0 To dt.Columns.Count - 1
str = str & rws(i)(j).ToString & " "
Next
Console.WriteLine(str)
Next
End Sub
End Module
|
実行結果 |
DataViewを使っての抽出
Module Module1
Sub Main()
'サンプルデータテーブル
Dim dt As New DataTable
dt.Columns.Add("NO", Type.GetType("System.Double"))
dt.Columns.Add("CATEGORY1", Type.GetType("System.String"))
dt.Columns.Add("NAME", Type.GetType("System.String"))
dt.Columns.Add("VAL1", Type.GetType("System.Double"))
dt.Rows.Add("0", "分類00", "名前0000", 15)
dt.Rows.Add("1", "分類00", "名前0001", 23)
dt.Rows.Add("2", "分類00", "名前0002", 75)
dt.Rows.Add("3", "分類00", "名前0003", 0)
dt.Rows.Add("4", "分類00", "名前0004", 69)
dt.Rows.Add("5", "分類00", "名前0005", 45)
dt.Rows.Add("6", "分類01", "名前0100", 96)
dt.Rows.Add("7", "分類01", "名前0101", 12)
dt.Rows.Add("8", "分類01", "名前0102", 69)
dt.Rows.Add("9", "分類01", "名前0103", 2)
dt.Rows.Add("10", "分類01", "名前0104", 2)
dt.Rows.Add("11", "分類01", "名前0105", 18)
dt.Rows.Add("12", "分類02", "名前0200", 8)
dt.Rows.Add("13", "分類02", "名前0201", 72)
dt.Rows.Add("14", "分類02", "名前0202", 95)
dt.Rows.Add("15", "分類02", "名前0203", 55)
dt.Rows.Add("16", "分類02", "名前0204", 22)
dt.Rows.Add("17", "分類02", "名前0205", 99)
dt.Rows.Add("18", "分類03", "名前0300", 74)
dt.Rows.Add("19", "分類03", "名前0301", 51)
dt.Rows.Add("20", "分類03", "名前0302", 68)
dt.Rows.Add("21", "分類03", "名前0303", 18)
dt.Rows.Add("22", "分類03", "名前0304", 99)
dt.Rows.Add("23", "分類03", "名前0305", 37)
'データを抽出
Dim dv As New DataView(dt)
dv.RowFilter = "CATEGORY1 = '分類03'"
'抽出したデータを出力
For i = 0 To dv.Count - 1
Dim str As String = Nothing
For j = 0 To dv.Table.Columns.Count - 1
str = str & dv(i)(j).ToString & " "
Next
Console.WriteLine(str)
Next
End Sub
End Module
|
実行結果 |
BindingSourceを使っての抽出
フォームにDataGridView、BindingSourceを配置する
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'サンプルデータテーブル
Dim dt As New DataTable
dt.Columns.Add("NO", Type.GetType("System.Double"))
dt.Columns.Add("CATEGORY1", Type.GetType("System.String"))
dt.Columns.Add("NAME", Type.GetType("System.String"))
dt.Columns.Add("VAL1", Type.GetType("System.Double"))
dt.Rows.Add("0", "分類00", "名前0000", 15)
dt.Rows.Add("1", "分類00", "名前0001", 23)
dt.Rows.Add("2", "分類00", "名前0002", 75)
dt.Rows.Add("3", "分類00", "名前0003", 0)
dt.Rows.Add("4", "分類00", "名前0004", 69)
dt.Rows.Add("5", "分類00", "名前0005", 45)
dt.Rows.Add("6", "分類01", "名前0100", 96)
dt.Rows.Add("7", "分類01", "名前0101", 12)
dt.Rows.Add("8", "分類01", "名前0102", 69)
dt.Rows.Add("9", "分類01", "名前0103", 2)
dt.Rows.Add("10", "分類01", "名前0104", 2)
dt.Rows.Add("11", "分類01", "名前0105", 18)
dt.Rows.Add("12", "分類02", "名前0200", 8)
dt.Rows.Add("13", "分類02", "名前0201", 72)
dt.Rows.Add("14", "分類02", "名前0202", 95)
dt.Rows.Add("15", "分類02", "名前0203", 55)
dt.Rows.Add("16", "分類02", "名前0204", 22)
dt.Rows.Add("17", "分類02", "名前0205", 99)
dt.Rows.Add("18", "分類03", "名前0300", 74)
dt.Rows.Add("19", "分類03", "名前0301", 51)
dt.Rows.Add("20", "分類03", "名前0302", 68)
dt.Rows.Add("21", "分類03", "名前0303", 18)
dt.Rows.Add("22", "分類03", "名前0304", 99)
dt.Rows.Add("23", "分類03", "名前0305", 37)
'BindingSource1のDataSource設定
Me.BindingSource1.DataSource = dt
'データの抽出
Me.BindingSource1.Filter = "CATEGORY1 = '分類01'"
'DataGridView1のDataSource設定
Me.DataGridView1.DataSource = Me.BindingSource1
End Sub
End Class
|
実行結果 |
0 件のコメント:
コメントを投稿