LINQ查询结果和空值

时间:2014-09-05 18:24:47

标签: linq vb.net-2010

我在LINQ查询中遇到空值问题。

这是我的疑问:

Dim partsquery = (From u In parts.AsEnumerable() _
                   Where u.Field(Of String)("PART_GRP").Equals(sPartType) 
                   Select PART_GRP = u.Field(Of String)("PART_GRP"), Serial_Num = u.Field(Of String)("PART_SN"),
                   Position = u.Field(Of Integer?)("PART_POS_NUM"))

在我的代码中,在查询之后,在For循环中我有:

If partsquery.Count >= i Then

    If Not IsDBNull(partsquery(i).Position) Then
        sPartsPosition = partsquery(i).Position.ToString
    End If

在“IF NOT ...”行中我得到:“对象引用未设置为对象的实例。”

我试过

If Not partsquery(i).Position Is Nothing Then

If partsquery(i).Position.HasValue Then

他们都给我“对象引用没有设置为对象的实例。” 或“可以为空的对象必须有一个值。”

在我的查询中,Position字段是可空的,我认为这意味着允许空值,所以我希望将“”分配给字符串变量。我做错了什么?

感谢您的帮助。这让我发疯了。

0 个答案:

没有答案