検索(抽出)するだけなら、わざわざビューを作る必要はない[お仕事]
(2014-09-04 23:41:44) by shinoda
VB.NET の話。
DataSet には並び替えの概念はないので、DataSet の表をソートしようとすると、その DataSet から DataView を作って、それを Sort メソッドで並び替えるしか無いわけだけど、検索(行の抽出)だけであれば DataSet の中で行える。
Dim dv As DataView = ds.hoge_table.DefaultView
dv.RowFilter = "hoge_time >= #" & hogeTime.ToString & ".00000# Or hoge_time <= #" & hogeTime.ToString & ".99999#"
dv.Sort = "key1, key2"
For Each drv As DataRowView In dv
Dim dr As HogehogeDataSet.hoge_tableRow = CType(drv.Row, HogehogeDataSet.hoge_tableRow)
dr.key1 をほげほげ〜
Next
という処理のことを書いたけど、この Sort メソッドを実行しない・・・という前提なら(つまり検索(抽出)をしたいだけなら)、DataTable の Select メソッドを使えば、検索(抽出)した結果が配列で取れるので、
Dim filter As New Text.StringBuilder
filter.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 drList
dr.key1 をほげほげ〜
Next
という感じで良い。
ステップ数は変わらないけど、抽出のためだけにビューを作らないので俺はこっちの方が好みだな。
ソートする時はどうしようもないけど(^^;
一応、メモ代わりに書いとくなり。
コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る
Powered by
MT4i 3.0.8