如何处理VB.NET LINQ对象引用未设置异常?

如何处理VB.NET LINQ对象引用未设置异常?,vb.net,Vb.net,对于每个抛出对象引用未设置异常。如何处理此异常?问题的根本原因可能是以下表达式 Dim IsValid = From rec In Collection.QueryPalletID("").AsEnumerable() _ Join rec In thedata.AsEnumerable() On lrec.ID.Trim Equals srec.Field(Of String)("ID").Trim _

对于每个
抛出对象引用未设置异常。如何处理此异常?

问题的根本原因可能是以下表达式

Dim IsValid = From rec In Collection.QueryPalletID("").AsEnumerable() _
                        Join rec In thedata.AsEnumerable() On lrec.ID.Trim Equals srec.Field(Of String)("ID").Trim _
                        Select rec

For Each rec As DataRow In IsValid 
    Exit For
Next
这里的一个值是
Nothing
。用有限的代码样本是无法确定的。我的直接怀疑是
lrec
srec
,因为它们没有在代码示例中定义,但也可以是
lrec.ID
src.Field(字符串的)(“ID”)

一旦
IsValid
集合为每个
枚举
,这些表达式将被执行,并在访问
Nothing
时引发异常。您需要修复这些问题以说明
没有任何问题
,或者将其初始化为一个值

尝试以下操作:

PS:我已经在运行中编写了它,也许你应该对数据类型进行更改,但只是为了向你展示一种(也许)可能的方法来验证它

lrec.ID.Trim Equals srec.Field(Of String)("ID").Trim

请检查示例代码-有两个
rec
s和
lrec
/
srec
未定义。为什么必须在for中将rec定义为数据行?如果将IsValid中的每个rec更改为
它应该可以工作。IsValid从未转换为datatable,因此您正在将对象IsValid与rec中的行进行比较。如果IsValid中有值,它将进入for循环并退出for循环。。。如果IsValid中没有任何值,它将跳过for循环…请在后面的布尔语法中提供帮助。任何False都不会接受。现在它显示关键字作为标识符无效。请帮我一下。
Dim DataRows As IEnumerable(Of DataRow) =
    From rec As DataRow In Collection.QueryPalletID("").AsEnumerable()
    Join rec As DataRow In thedata.AsEnumerable() On lrec.ID.Trim Equals srec.Field(Of String)("ID").Trim
    Select rec

Dim IsValid As Boolean = 
    If(DataRows IsNot Nothing, 
       (From [Datarow] As DataRow In DataRows Where [Datarow] IsNot Nothing).Any),
       False)


If IsValid Then

    For Each rec As DataRow In DataRows
        Exit For
    Next rec

End If