从另一个数据表填充一个数据表时,我注意到一列的值不正确。
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()
方法确实清除了所有行。
答案 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