だって、VB.NET で DataSet とか触るの初めてだったんだもの[プログラミング]
(2014-09-11 00:52:46) by shinoda


VB.NET はちょっとしたツール(定例処理で使う超シンプルな FTP クライアントとか)を作るのに使ってたので(ちいさなプログラムでも、それなりに内部的にはややこしいことをしてたしな)、コーディング自体は問題なかったのだが、実は DB がらみのプログラムは全然書いたことがなかった。
なので、DB のデータを DataSet にセットして云々かんぬんなんてやったことなかったわけよ(^^;

なので、7月、8月に作ったプログラムって、無駄なことしてるわあ(^^;

ある DataSet の中身を並び替えて DataGridView にセットするんだけど、

' 並び替えのため DataSet を View にセット
Dim hogeDv As DataView = hogeDs.t_hoge.DefaultView

' 並びかえ(あのコード1、この日付1)
hogeDv.Sort = "ano_code1, kono_date1"

' 並び替えを行った View を新しい DataSet にコピー
Dim newDs As New HogeDataSet
For Each drv As DataRowView In hogeDv
    Dim dr As HogeDataSet.t_hogeRow = CType(drv.Row, HogeDataSet.t_hogeRow)
    Dim ndr As HogeDataSet.t_hogeRow = newDs.t_hoge.Newt_hogeRow
    ndr.ItemArray = dr.ItemArray
    newDs.t_hoge.Addt_hogeRow(ndr)
Next
' 更新の反映
newDs.AcceptChanges()

Me.HogeBindingSource.DataMember = newDs.t_hoge.TableName
Me.HogeBindingSource.DataSource = ds

みたいに、わざわざ View の内容を新しい DataSet にセットしてから BindingSource にバインドしてたけど、そんなことする必要なかったんやなあ。
別に View のままで突っ込めたんや。
この頃は、DataSet がらみのクラスのプロパティの内容とかあまり理解してなかったからなあ(^^;

実際は、

' 並び替えのため DataSet を View にセット
Dim hogeDv As DataView = hogeDs.t_hoge.DefaultView

' 並びかえ(あのコード1、この日付1)
hogeDv.Sort = "ano_code1, kono_date1"

Me.HogeBindingSource.DataMember = hogeDv.Table.TableName
Me.HogeBindingSource.DataSource = hogeDv

これでええんやな。

恥ずかしいから、過去のコードもこっそり直しとかないと(^^;(まあ、なんの問題もなく動いてるので、そんなにじっくりソースを見られちゃうこともないだろうけど)

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8