Windows: 2014年9月アーカイブ

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

という感じで良い。

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

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

このアーカイブについて

このページには、2014年9月以降に書かれたブログ記事のうちWindowsカテゴリに属しているものが含まれています。

前のアーカイブはWindows: 2014年8月です。

次のアーカイブはWindows: 2014年10月です。

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


月別 アーカイブ

電気ウナギ的○○ mobile ver.

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