検索(抽出)するだけなら、わざわざビューを作る必要はない

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

という感じで良い。

ステップ数は変わらないけど、抽出のためだけにビューを作らないので俺はこっちの方が好みだな。
ソートする時はどうしようもないけど(^^;

一応、メモ代わりに書いとくなり。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 検索(抽出)するだけなら、わざわざビューを作る必要はない

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3095

コメントする

このブログ記事について

このページは、shinodaが2014年9月 4日 23:41に書いたブログ記事です。

ひとつ前のブログ記事は「いきなりお通し(付き出し)がハタハタだったのには笑った」です。

次のブログ記事は「山口県は日本一男が痩せている県だということを知っているか!?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら