0

vbのrecordset.underlyingvalueおよびrecordset.valueと同等または類似のvb.netは何ですか?

vbアプリケーションをvb.netに変換していて、レコードセットをデータセットに置き換えましたが、これを理解できませんでした。どんな助けでも本当にありがたいです。

データセットのコピーを作成し、値を比較して変更を追跡しようとしましたが、あまり効率的ではないようです。これが私が変換しようとしているコードの一部です。

For Each fld In rs.Fields
        bfldChanged = False
        Select Case fld.Type
            Case adDate, adDBDate, adDBTime, adDBTimeStamp:                    
                If IsDate(fld.UnderlyingValue) And Not IsDate(fld.Value) Then
                    bfldChanged = True
                ElseIf Not IsDate(fld.UnderlyingValue) And IsDate(fld.Value) Then
                    bfldChanged = True
                ElseIf IsDate(fld.UnderlyingValue) And IsDate(fld.Value) Then
                    If fld.UnderlyingValue <> fld.Value Then
                        bfldChanged = True
                    Else
                        bfldChanged = False
                    End If
                Else
                    bfldChanged = False
                End If
            Case Else:
                If (fld.UnderlyingValue <> fld.Value) Then
                    bfldChanged = True
                Else
                    bfldChanged = False
                End If
        End Select
Next
4

1 に答える 1

3

その特定のプロパティに相当するものはありません。.NETのデータアクセスは、VB6以前のデータアクセスとは大きく異なります。DataTableは、RecordSetにほんのわずかしか似ていません

ただし、コードを見ると、テーブルに変更が含まれているかどうかを確認しているように見えます。DataTable.GetChanges()メソッドを使用して、これをはるかに簡単に判断できます。


公式の回答の一部ではありませんが、一般的な推奨事項です。

私は大量のVB6アプリを.NETアプリに変換しましたが、経験から、行ごとの変換を試みることはほとんどの場合悪い考えであることがわかりました。この2つはまったく異なり、いずれの場合も、最初からやり直す方が効率的でエラーが発生しないことが証明されています。VB6アプリが何をしたか(要件)を理解していることを確認してください。すべてをマッピングし、すべてのフローチャートを作成してから、.NETバージョンを最初から作成します。私は他の方法でそれをするのに頭痛しかありませんでした。

于 2012-09-12T16:07:20.813 に答える