VB问题与DataTable.ImportRow()方法

时间:2019-02-05 15:26:59

标签: vb.net datatable

从另一个数据表填充一个数据表时,我注意到一列的值不正确。

VB代码:

Dim DT1 as DataTable = ...
Dim DT2 as DataTable = ...

DT2.Rows.Clear()
For Each row In DT1.Rows
 DT2.ImportRow(row)
 If (DT2.Rows.Item(DT2.Rows.Count - 1).Item("MyProp") <> row.Item("MyProp")) Then
  'This condition is true!!!!
 End If
Next

这怎么可能发生?

甚至是那个陌生人

DT2.Rows.Item(DT2.Rows.Count - 1).Item("MyProp") =已被清除的旧值 DT2.Rows.Clear()

我100%确信当我看着调试器中的值内容时,Clear()方法确实清除了所有行。

1 个答案:

答案 0 :(得分:0)

请启用“严格选项”。 您可以在以下位置找到此设置 工具菜单->选项->项目和解决方案-> VB默认值。 这将使您免于运行时的错误,并导致您...

    For Each row As DataRow In DT1.Rows
        DT2.ImportRow(row)
        If CDbl(DT2.Rows(DT2.Rows.Count - 1).Item("MyProp")) <> CDbl(row.Item("MyProp")) Then
            'Do something
        End If
    Next