LINQ vb.net中的空结果

时间:2012-04-11 18:15:06

标签: vb.net linq null sequence

嗨,人们:)我遇到了一个空结果的问题,当我比较查询时,我说它不能给出以下错误"序列不包含任何元素"

Dim existe = (
    From   p In abc.Ventadetalles 
    Where  p.idarticulo = txtArticulo.Text 
    And    p.idventa = IdventaTextBox.Text 
    Select p).Single

这是代码

3 个答案:

答案 0 :(得分:2)

尝试使用SingleOrDefault。这应该有用。

或者你可以使用Any(),因为看起来你正试图测试是否存在。

答案 1 :(得分:2)

错误是正确的:序列没有元素!您正在使用Single(),因此空序列会产生错误。如果您想要返回默认值,请使用SingleOrDefault()

如果您希望序列中存在实际元素,请再次仔细检查您的条件和源数据。

答案 2 :(得分:0)

以下内容可行:

Dim existe = (
    From   p In abc.Ventadetalles 
    Where  p.idarticulo = txtArticulo.Text 
    And    p.idventa = IdventaTextBox.Text 
    Select p).SingleOrDefault()

If existe Is Not Nothing Then
    '' here you can use existe
End If