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

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

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

Sequence不包含任何元素描述:在执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

exception详细信息: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();

可能导致这种情况的任何想法?

如果您的select返回0行,则First()会导致此操作。 您要么必须捕获该exception,要么使用FirstOrDefault() ,如果没有元素,它将返回null。

您正在使用linq的First()方法,如果您在空集合上调用它,则根据文档抛出InvalidOperationException。

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

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

该值为null,您必须检查原因…(除了此处提出的解决方案的实现)

检查硬件连接。

“处理”’序列没有元素’的部分答案VB中的exception是测试空的

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

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