VB.NET の話。
DataSet には並び替えの概念はないので、DataSet の表をソートしようとすると、その DataSet から DataView を作って、それを Sort メソッドで並び替えるしか無いわけだけど、検索(行の抽出)だけであれば DataSet の中で行える。
昨日アップしたエントリーでは、
Dim dv As DataView = ds.hoge_table.DefaultViewdv.RowFilter = "hoge_time >= #" & hogeTime.ToString & ".00000# Or hoge_time <= #" & hogeTime.ToString & ".99999#"dv.Sort = "key1, key2"For Each drv As DataRowView In dvDim dr As HogehogeDataSet.hoge_tableRow = CType(drv.Row, HogehogeDataSet.hoge_tableRow)dr.key1 をほげほげ~Next
という処理のことを書いたけど、この Sort メソッドを実行しない・・・という前提なら(つまり検索(抽出)をしたいだけなら)、DataTable の Select メソッドを使えば、検索(抽出)した結果が配列で取れるので、
Dim filter As New Text.StringBuilderfilter.Append("hoge_time >= #" & hogeTime.ToString & ".00000# Or hoge_time <= #" & hogeTime.ToString & ".99999#")Dim drList() As DataRow = ds.hoge_table.Select(filter.ToString)For Each dr As HogehogeDataSet.hoge_tableRow In drListdr.key1 をほげほげ~Next
という感じで良い。
ステップ数は変わらないけど、抽出のためだけにビューを作らないので俺はこっちの方が好みだな。
ソートする時はどうしようもないけど(^^;
一応、メモ代わりに書いとくなり。