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 应用程序,经验告诉我,进行逐行转换尝试几乎总是一个坏主意。两者完全不同,在每种情况下,事实证明从头开始更有效且无错误。确保我了解 VB6 应用程序所做的(要求)将其全部映射出来,对所有内容进行流程图,然后从头开始构建 .NET 版本。我除了头痛之外什么都没有。

于 2012-09-12T16:07:20.813 回答