Видимо, в вашем коде возникли проблемы при сравнении TerminalID
, который может быть DBNull, с целым числом RandomID
.Вы можете избежать этой проблемы, обратившись к TerminalID
следующим образом:
...(Function(s) s.Field(Of Integer?)("TerminalID") = RandomID)
DataRow.Field
обеспечивает строго типизированный доступ к полям данных и, при использовании с обнуляемыми типами (такими как Integer?
), автоматически преобразует DBNulls в Nothing
.Поскольку Integer?
(ваше поле) и Integer
(RandomID) можно сравнить с =
, приведенный выше код должен работать нормально.
В качестве дополнительного комментария: я бы рекомендовал включить Option Strict , это позволяет избежать использования множества неявных преобразований повсюду и поддерживает хороший стиль кодирования.(Да, вы получите много ошибок компиляции после включения, но это хорошая причина ... для улучшения качества вашего кода. При Option Strict On ваш пример кода даже не скомпилировался бы.)