Код, который вы хотите (надеюсь) ..
If MyNullableDateObject.HasValue Then
TextValue = FormatDateTime(MyNullableDateObject.Value)
Else
TextValue = "nada"
End If
Если поле SQL принимает значения Null, то конструктор Linq to SQL сопоставляет его с типом .net Nullable, например, SQL DateTime будет сопоставлен с типом с именем Date ?. Если вы посмотрите на свойства поля в конструкторе Linq to SQL, у него должно быть свойство Nullable, которое, если схема SQL допускает значения NULL в этом поле, будет установлено в значение true.
Необнуляемые (то есть обычные) типы дат являются типами значений, а не типами объектов, поэтому «Ничего не помогает». IsDBNull предназначен для типов в System.Data.SqlTypes, но Linq to SQL сопоставляется с «нативными» .Net типами, так что это тоже не помогает.
См. - Типы Nulllable
EDIT
Вы можете подумать о переименовании переменной Value во что-то другое (как я уже делал выше), поскольку, конечно, это не тип Value, а Value - плохое имя.
Также обратите внимание, что в VB Nullable тип может быть объявлен двумя эквивалентными способами
Dim d As Date?
Dim d As Nullable(Of Date)
Надеюсь, это имеет смысл.