来自数据表行的DBNull异常

时间:2017-06-09 14:58:30

标签: vb.net

我是一名初学者并且被困在一个地方。所以基本上我需要将日期值设置为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

1 个答案:

答案 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