« DELLノートPCでリモートデスクトップ画面をキャプチャする方法 | トップページ | トリガーを無効/有効にするコマンド »

2013年5月11日 (土)

データテーブルのレコード削除について

.Deleteは削除のフラグをつけるだけということで、
カウンタもそのまま使えるはずなのだが、上手くいかない。
どうも、
DBから検索してsqlAdpを使って作った場合は.Deleteは削除のフラグをつけるだけだが
自分でデータを入れて作ったデータテーブルでは.Deleteで削除され、rows.countも
減ってしまうようだ。

修正前
例えば3件目が削除対象だった場合、intI=2のレコードが削除され元4件めがintI=2の位置に来て
4件目のチェックが抜けてしまった。
本来の「.Deleteは削除のフラグをつけるだけ」なら上手くいく。
        Dim intI As Integer
        For intI = 0 to dTabNew.Rows.Count - 1
            If dTabNew.Rows(intI)("売上高_金額") = 0 And dTabNew.Rows(intI)("売上原価_金額") = 0 Then
                dTabNew.Rows(intI).Delete()
            End If
        Next

上手くいかなかったので修正した文

        Dim intI As Integer
        Do Until intI = dTabNew.Rows.Count
            If dTabNew.Rows(intI)("売上高_金額") = 0 And dTabNew.Rows(intI)("売上原価_金額") = 0 Then
                dTabNew.Rows(intI).Delete()
            Else
                intI += 1
            End If
        Loop

« DELLノートPCでリモートデスクトップ画面をキャプチャする方法 | トップページ | トリガーを無効/有効にするコマンド »

VB.NET」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: データテーブルのレコード削除について:

« DELLノートPCでリモートデスクトップ画面をキャプチャする方法 | トップページ | トリガーを無効/有効にするコマンド »