電気ウナギ的○○

About Home

総舐めにしなくても、FindBy メソッド使えばええんや!

shinoda (2014年9月23日 11:29)
前にも書いたように、.NET 系の言語(VBとC#)でデータセットを使ってほげほげという開発経験がないので、日々発見の毎日である(^^;
データセットのメソッドやプロパティを全て理解しているわけではないので、あるメソッドを使えば簡単に解決することを、ロジックでごにょごにょしたり、まあ、そういう無駄がまだ多い(^^;
今の仕事の契約が切れる頃にバッチリになりそうで若干申し訳ないなと思いつつ(^^;;;

データテーブルの中の何件かのレコードのフラグを変更する・・・なんて処理で、例えば keys() という配列に対象レコードのキーが入っているとして、

For i = 0 To dt.Count - 1
For j = 0 To keys.Length - 1
If dt(i).id = keys(j) Then
dt(i).chkFlg = 1
Exit For
End If
Next
Next

なんて多重ループにしてたんだけど、レコード数が増えたら遅くなるわなあ・・・と(^^;
実は、こんな風にループして総舐めにしなくても、ちゃんと更新対象を指定できるメソッドが DataSet クラスにはある。

FindBy だ。(ただし、データセットできちんと主キーの設定がされていないと使えない)

ちゃんと主キーとして指定されている項目でレコードを絞り込める環境であれば、

For j = 0 To keys.Length - 1
Dim row As DataSet.hogeRow
row = dt.FindByid(keys(j))
row.chkFlg = 1
Next

という感じで組める。
これならループが1個で随分処理がシンプルになる。

メソッド知らなくても、こまめにググればええやんという話だが、最初はその余裕すらなかったわ(^^;

<追記>
ちなみに、主キー設定がなければ、Select メソッドで対象レコードを絞り込めばよし。
ただ、結果が配列で返ってくるなど、若干動きは変わってくるが。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3121

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE