处理'序列没有元素'例外

时间:2012-08-03 19:03:13

标签: c# .net linq entity-framework ado.net

我正在更新购物车中的数量,但它正在抛出一个序列没有元素的例外。

我不知道这意味着什么。起初我以为可能在某处传递了空值,但事实并非如此,因为我已经检查过:

  

序列不包含元素描述:未处理的异常   在执行当前Web请求期间发生。请   查看堆栈跟踪以获取有关错误和位置的更多信息   它起源于代码。

     

异常详细信息:System.InvalidOperationException:Sequence   不包含任何元素

     

来源错误:

     

第35行:var uid = WebSecurity.CurrentUserId;第36行:   var newqty = Request.Form [“Quantity”];第37行:
  OModel.Cart c =(来自database.Carts第38行中的项目:
  item.UserId == uid&& item.PartNumber == pnumber&& item.OrderId   == oid第39行:选择项目。)。first();

任何可能导致此问题的想法?

6 个答案:

答案 0 :(得分:79)

如果你的select返回0行,

First()会导致这种情况。您要么必须捕获该异常,要么使用FirstOrDefault(),如果没有元素,则返回null。

答案 1 :(得分:12)

您正在使用linq的First()方法,如果您在空集合上调用它,则as per the documentation会抛出InvalidOperationException。

如果您希望查询结果有时为空,您可能希望使用FirstOrDefault(),如果集合为空,它将返回null,而不是抛出异常。

答案 2 :(得分:6)

而不是.First()将其更改为.FirstOrDefault()

答案 3 :(得分:1)

该值为null,您必须检查原因...  (除了这里提出的解决方案的实施)

检查硬件连接。

答案 4 :(得分:1)

处理'的部分答案'序列没有元素' VB 中的例外情况是测试空

If Not (myMap Is Nothing) Then
' execute code
End if

MyMap是查询的序列,返回空/ null。 FYI

答案 5 :(得分:0)

我遇到了同样的问题,我意识到我已经删除了文件夹中的默认图像 只需更新特定文件上缺少的媒体