2009-03-06 6 views
1

コンストラクタのオプションのDateTimeパラメータにnull値を設定するにはどうすればよいですか?コンストラクタでSqlDateTime.Nullを設定する

以下のコンストラクタを使用しています。オプションのパラメータadmissionDateをnull DateTimeにします。これをNothingに設定すると、実際に値が与えられます(#12:00:00#のようなもの)。

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

答えて

2

私はジェームズ・カランのソリューションを使用することをお勧めしますが(「オプションのパラメータは、構造タイプを持つことができません」)あなたが言及したエラーの回避策として、オプションのパラメータの代わりにオーバーロードを使用したい:

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を使用しますか? VBの最新バージョンではNullable(Of DateTime)の代わりに使用されます(古いバージョンについてはわかりません)。

+0

私は基本的にこのソリューションをオーバーロード(2つのコンストラクタ)で使用しました。しかし、私はNothingの代わりにSqlDateTime.Nullを使用しました。 – spong

2

私は通常、NULL日付/時刻を表すためにDateTime.MinValueを使用します。

1

DBNull.Valu eを試しましたか?

3

Nullable DateTimeが必要です。 C#では、Nullable<DateTime>またはDateTime?です。私はVB.NETの構文のわからないんだけど、私はそれがSystem.Data.SqlTypes.SqlDateTimeは、組み込みのdatetimeと同じではありませんNullable(Of DateTime)

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

私はエラーが発生しています: オプションのパラメータは構造体型を持つことができません – spong

2

のようなものだと思います。

この型を使用するか、NULL可能なdatetimeを使用できます。

関連する問題