- - PR -
データテーブルの参照方法
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-06-30 17:41
お世話になります。
VS2003 VB WinXP winform データテーブルの参照方法で悩んでいます。 ソートした状態である条件で削除するような処理を行っているのですが それが一つ前のレコードを削除したいのです。 for eash のループで参照すると現状レコードのみしか取れないようだし データテーブル自体にカレント行という考えがないようなので難しいかも しれませんが... 参考までにダメだった場合の例を載せます For j As Integer = 0 To dt.Rows.Count - 1 If 条件1 Then dt(j-1).Delete() End If Next どなたかお分かりになりますでしょうか? 宜しくお願い致します。 [ メッセージ編集済み 編集者: 人間の○ず 編集日時 2008-06-30 17:42 ] | ||||||||||||||||
|
投稿日時: 2008-06-30 17:57
ソートした状態、とおっしゃってますが、データテーブルの内容自体がソートされて
ないんじゃないでしょうか? データテーブルがソートした状態で最初から作られているなら別ですが。 ソートした状態でテーブルを作り直すか、ひとつ前の行のキーとなるデータを保持して おいて、そのキーから行を特定して削除する、といった方法をとる必要があると 思います。 | ||||||||||||||||
|
投稿日時: 2008-06-30 17:57
でいける気がしますが。。。 | ||||||||||||||||
|
投稿日時: 2008-06-30 23:19
削除する行が複数あるなら後ろからの方がいいのでは?
これだと、2行あるとき、最初の行で削除されたら2行目は評価されませんよ。 | ||||||||||||||||
|
投稿日時: 2008-06-30 23:34
DataRow.Delete()はコレクションから削除されるわけではなく RowStateがDeletedになるだけなので関係ないと思います。 ただjは1から開始すべきですね。 | ||||||||||||||||
|
投稿日時: 2008-06-30 23:46
失礼しました。
未確認情報あげてすみませぬ。 | ||||||||||||||||
|
投稿日時: 2008-07-01 09:28
皆様、ご回答ありがとうございます。
どっとねっとふぁんさん
ロジックを引用する時に割愛してしまいました。 一度データビューに置き換えてソートしてデータテーブルに落としなおしています。
できれば一つ前のという消し方がしたいと思いまして。 方法がなければそちらも考えます。 burton999さん
そうですか。。 もう少しやってみます。 ぴあちゃんさん
後ろからでもよさそうですね ありがとうございます。 |
1