无法将null值分配给类型为System.Int32的成员,该类型是非可空值类型

时间:2010-08-18 09:07:26

标签: vb.net

请帮助我当我执行此linq to sql命令时,给定一个错误“无法将null值分配给类型为System.Int32的成员,这是一个不可为空的值类型。”

  1. 0我的Commotidy表中的记录
  2. 我想生成手册编号并获取最后一个CommodityCode
  3. 我的代码如下,

    Dim QRecordCount = From RC In cntxtCommodity.CommodityMasters _
                                     Where RC.CommodityCode <> 0 _
                                    Select RC.CommodityCode
    
                    LastCommodityCode = QRecordCount.Max() + 1
    

    VB.NET 2008

    Suhaib

1 个答案:

答案 0 :(得分:0)

我尝试使用此示例复制您的代码:

Module Module1

    Sub Main()

        Dim cntxtCommodity As New List(Of CommodityMasters)

        cntxtCommodity.Add(New CommodityMasters With {.CommodityCode = 34})
        cntxtCommodity.Add(New CommodityMasters With {.CommodityCode = 1})
        cntxtCommodity.Add(New CommodityMasters With {.CommodityCode = 234})
        cntxtCommodity.Add(New CommodityMasters())

        Dim LastCommodityCode = cntxtCommodity.Where(Function(rc) rc.CommodityCode.HasValue AndAlso rc.CommodityCode > 0).Max(Function(rc) rc.CommodityCode)

    End Sub

End Module

Public Class CommodityMasters

    Public CommodityCode As Nullable(Of Integer)

End Class

基本上,上面应该处理可以为空的整数(CommodityCode),它应该阻止你在那部分得到例外。我不是100%确定它是否解决了所有问题,但数据库中没有记录。试试吧。