我是一名初学者并且被困在一个地方。所以基本上我需要将日期值设置为datarow之一。但是当date为空字符串时,我需要将其设置为“Now”。但我无法这样做。
我的异常为System.Data.StrongTypingException' "The value for column 'dteEntry' in table is DBNull
这就是我所拥有的
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
答案 0 :(得分:1)
这是一个强类型的DataSet,可以自动生成您在上面使用的NewdtCardRow
方法之类的代码。每个可以为空的属性都有一个方法来检查它是否为null,它的名称是从属性的名称派生的,如IsEntryDate_Null
,你可以用它来检查是否value为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