Nullable失败 - dbnull为整数

时间:2013-08-15 06:34:00

标签: .net database vb.net nullable dbnull

在我班上:

Namespace Chauffeurs
     Public Class Algemeen
         Property FirmaId As Integer?
         Property Firma As String

         Public Sub New()
         End Sub

         Public Sub New(ByVal firmaId As Integer?, Optional ByVal id As Integer = 0)
             'I don't even reach this point.
             Me.FirmaId = firmaId
         End Sub
     End Class

     Public Class Yard
         Inherits Chauffeurs.Algemeen

         Public Sub New()
         End Sub

         Public Sub New(ByVal drv As DataRowView)
             MyBase.New(drv(2), drv(1), drv(3), drv(4), drv(0)) '<--- error occurs here
         End Sub

以我的形式: huidigeChauffeur = new allePersonen.Chauffeurs.Yard(drv)

我100%肯定在drv(4)中有一个DBNull。但是我仍然得到错误“指定演员表无效”,即使我使用可空的

额外: 如果我输入Cint(drv4)Ik得到错误“从类型转换”DBNull“到类型'整数'无效。 这不是Nullable应该抓住的吗?!

2 个答案:

答案 0 :(得分:0)

如果某些内容可能为null或无效,则测试值;

If NOT IsDbNull(drv(2)) AndAlso drv(2) = AnyValue Then
   'Do success
ELSE
   'Failure
End If

答案 1 :(得分:0)

有些人几乎回答了这个问题,但是他/她删除了答案。

如下: drv.Row.Field(Of System.Nullable(Of Integer))(4).GetValueOrDefault