2009-03-06 19 views
1

Kurucuda isteğe bağlı bir DateTime parametresi için boş değer nasıl ayarlayabilirim?SqlDateTime.Null yapıcıda ayarlama

Aşağıdaki kurucuyu aşağıda kullanıyorum ve isteğe bağlı parametre admissionDate'in boş bir DateTime olmasını istiyorum. Bunu hiçbir şeye ayarlama aslında ona bir değer verir (# 12: 00: 00 # gibi bir şey).

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

cevap

2

Ben istiyorum James Curran 'çözümünü kullanarak önermek ancak söz hata ("İsteğe bağlı parametreler yapı türleri içeremez") için geçici bir çözüm olarak, isteğe bağlı bir parametre yerine Aşırı yükleme kullanın:

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 

Ayrıca şunu da yapabilirsiniz DateTime kullan? VB'nin son sürümünde Nullable (Of DateTime) yerine (eski sürümlerden emin değil).

+0

Temel olarak bu çözümü aşırı yükleme (iki kurucu) ile kullandım. Ama hiçbir şey yerine SqlDateTime.Null kullandım. – spong

2

Normalde boş bir tarihi/saati temsil etmek için DateTime.MinValue kullanıyorum.

1

DBNull.Valu e'i denediniz mi?

3

NULL yapılabilir bir DateTime'a ihtiyacınız olacak. C# 'da, Nullable<DateTime> veya DateTime?. Ben VB.NET sözdizimi emin değilim, ama Nullable(Of DateTime)

Public Sub New(ByVal obj1 as Object, _ 
     Optional ByVal admissionDate As Nullable(Of DateTime) = Null) 
+0

Hatası alıyorum: İsteğe bağlı parametreler yapı türlerine sahip olamaz – spong

2

System.Data.SqlTypes.SqlDateTime gibi bir şey aynı şekilde yerleşik datetime olmadığını düşünüyorum.

Bu türü kullanabilir veya boş bir tarih kullanabilirsiniz.

İlgili konular