前にも書いたように、.NET 系の言語(VBとC#)でデータセットを使ってほげほげという開発経験がないので、日々発見の毎日である(^^;
データセットのメソッドやプロパティを全て理解しているわけではないので、あるメソッドを使えば簡単に解決することを、ロジックでごにょごにょしたり、まあ、そういう無駄がまだ多い(^^;
今の仕事の契約が切れる頃にバッチリになりそうで若干申し訳ないなと思いつつ(^^;;;
データテーブルの中の何件かのレコードのフラグを変更する・・・なんて処理で、例えば keys() という配列に対象レコードのキーが入っているとして、
For i = 0 To dt.Count - 1For j = 0 To keys.Length - 1If dt(i).id = keys(j) Thendt(i).chkFlg = 1Exit ForEnd IfNextNext
なんて多重ループにしてたんだけど、レコード数が増えたら遅くなるわなあ・・・と(^^;
実は、こんな風にループして総舐めにしなくても、ちゃんと更新対象を指定できるメソッドが DataSet クラスにはある。
FindBy だ。(ただし、データセットできちんと主キーの設定がされていないと使えない)
ちゃんと主キーとして指定されている項目でレコードを絞り込める環境であれば、
For j = 0 To keys.Length - 1Dim row As DataSet.hogeRowrow = dt.FindByid(keys(j))row.chkFlg = 1Next
という感じで組める。
これならループが1個で随分処理がシンプルになる。
メソッド知らなくても、こまめにググればええやんという話だが、最初はその余裕すらなかったわ(^^;
<追記>
ちなみに、主キー設定がなければ、Select メソッドで対象レコードを絞り込めばよし。
ただ、結果が配列で返ってくるなど、若干動きは変わってくるが。
ただ、結果が配列で返ってくるなど、若干動きは変わってくるが。
電気ウナギ的○○
About Backコメント(0)
電気ウナギ的○○