VB проблема с методом DataTable.ImportRow () - PullRequest
0 голосов
/ 05 февраля 2019

При заполнении DataTable из другого 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 голосов
/ 05 февраля 2019

Пожалуйста, включите Option Strict.Вы можете найти этот параметр в меню «Сервис» -> «Параметры» -> «Проекты и решения» -> «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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...