ソート方向 ASC(省略可)‥昇順
DESC‥降順
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'", "VAL1 ASC") '抽出したデータを出力 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
実行結果 |
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'" '並び替え dv.Sort = "VAL1 ASC" '抽出したデータを出力 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
実行結果 |
フォームに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'" 'データの並び替え Me.BindingSource1.Sort = "VAL1 ASC" 'DataGridView1のDataSource設定 Me.DataGridView1.DataSource = Me.BindingSource1 End Sub End Class
実行結果 |
0 件のコメント:
コメントを投稿