请帮助我当我执行此linq to sql命令时,给定一个错误“无法将null值分配给类型为System.Int32的成员,这是一个不可为空的值类型。”
Dim QRecordCount = From RC In cntxtCommodity.CommodityMasters _
Where RC.CommodityCode <> 0 _
Select RC.CommodityCode
LastCommodityCode = QRecordCount.Max() + 1
VB.NET 2008
Suhaib
答案 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%确定它是否解决了所有问题,但数据库中没有记录。试试吧。