2017-06-09 7 views
1

私は初心者であり、1つの場所で立ち往生しています。だから基本的に私はデータの1つに日付の値を設定する必要があります。しかし、日付が空の文字列である場合、私はそれを "Now"に設定する必要があります。しかし、私はそうすることができません。私はここでSystem.Data.StrongTypingException' "The value for column 'dteEntry' in table is DBNullDBNullデータテーブル行からの例外

として例外を取得しています は私が

Dim strTimeStamp as String = "" ' code taken out for brevity 
' dteEntry is of Date datatype 
Dim newRow As ABC.Dataset.dtCardRow = ret.NewdtCardRow() 
    If (Date.TryParse(strTimeStamp, newRow.dteEntry)) Then 

    else 
    newRow.dteEntry = Now 
    End If 
+2

この質問は良い答えのために詳細を欠いています。 '.strTimeStamp'とは何か、そして' newRow.dteEntry'は何ですか... – Codexer

+0

...また、文字列は日付ではありません。簡潔にするため、他のヒントは省略されています。 – Plutonix

+0

で編集が行われました。 – Unbreakable

答えて

1

これは自動あなたが上記で使用しているNewdtCardRow方法のようなコードを生成し、厳密に型指定されたDataSetで持っているものです。ヌル可能なすべてのプロパティには、NULLかどうかをチェックするメソッドもあります。その名前は、値がNULLかどうかを確認するために使用できるIsEntryDate_Nullのようなプロパティの名前から派生しています。それ以外の場合は、Date.TryParseのようにそのプロパティを読み取ると例外が発生します。

しかし、この場合には、代わりにプロパティ自体を渡すDate.Parseのローカル変数を使用して、この例外を防ぐことができます。

newRow.dteEntry = DateTime.Now ' writing doesnt cause this exception 
Dim entryDate As Date 
If Date.TryParse(strTimeStamp, entryDate) Then 
    newRow.dteEntry = entryDate ' writing doesnt cause this exception 
End If 
+0

チャームのように働きました。私は初心者です。実際には、私はdatarow列のNULLをチェックするプロパティを持っています。私がそのように行こうとしているかどうか、親切に教えてくれますか?それについてどうやって行くの?余分な変数を作成したくないとします。 – Unbreakable

+0

datarowカラムのNULL自動生成プロパティを使用する小さなスニペットを1つ入れることはできますか – Unbreakable

関連する問題