如何处理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