Установка SqlDateTime.Null в конструкторе - PullRequest
1 голос
/ 06 марта 2009

Как установить нулевое значение для необязательного параметра DateTime в конструкторе?

Я использую следующий конструктор ниже и хочу, чтобы необязательный параметр admissionDate был нулевым DateTime. Установка его в Nothing на самом деле дает ему значение (что-то вроде # 12: 00: 00 #).

Public Sub New(ByVal obj1 as Object, Optional ByVal admissionDate As DateTime = System.Data.SqlTypes.SqlDateTime.Null)

Ответы [ 5 ]

3 голосов
/ 06 марта 2009

Вам понадобится Nullable DateTime. В C # это Nullable<DateTime> или DateTime?. Я не уверен в синтаксисе VB.NET, но я думаю, что это что-то вроде Nullable(Of DateTime)

 Public Sub New(ByVal obj1 as Object, _
        Optional ByVal admissionDate As Nullable(Of DateTime) = Null)
2 голосов
/ 06 марта 2009

Я бы предложил использовать решение Джеймса Керрана, но вместо дополнительной опции использовать Перегрузку, в качестве обходного пути для упомянутой вами ошибки («Необязательные параметры не могут иметь типы структуры»):

Public Sub New(ByVal obj1 As Object, ByVal admissionDate As Nullable(Of DateTime))
  //Your code here
End Sub

Public Sub New(Byval obj1 As Object)
  Me.New(obj1, Nothing)
End Sub

Вы также можете использовать DateTime? вместо Nullable (Of DateTime) в последней версии VB (не уверен насчет более старых версий).

2 голосов
/ 06 марта 2009

System.Data.SqlTypes.SqlDateTime отличается от встроенного datetime.

Вы можете использовать этот тип или использовать обнуляемую дату и время.

2 голосов
/ 06 марта 2009

Я обычно использую DateTime.MinValue для представления нулевой даты / времени.

1 голос
/ 06 марта 2009

Вы пробовали DBNull.Valu е?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...