web-dev-qa-db-fra.com

Traitement de la séquence sans exception

Je mets à jour une quantité dans mon panier, mais il lance une séquence sans exception d'éléments.

Et je ne sais pas ce que cela signifie même. Au début, je pensais qu'une valeur nulle était peut-être passée quelque part, mais ce n'est pas le cas, car j'ai vérifié cela:

La séquence ne contient aucun élément Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. S'il vous plaît Consultez la trace de la pile pour plus d'informations sur l'erreur et où cela provient du code. 

Détails des exceptions: System.InvalidOperationException: Sequence ne contient aucun élément

Erreur de source: 

Ligne 35: var uid = WebSecurity.CurrentUserId; Ligne 36: var newqty = Request.Form ["Quantité"]; Ligne 37:
OModel.Cart c = (à partir d'un élément de database.Carts, ligne 38:
où item.UserId == uid && item.PartNumber == pnumber && item.OrderId == oid Ligne 39: élément sélectionné) .First ();

Des idées ce qui pourrait être la cause?

32
Arrow

First() en est la cause si votre sélection renvoie 0 ligne. Vous devez soit intercepter cette exception, soit utiliser FirstOrDefault(), qui renverra null si aucun élément n’est présent.

72
Varius

Vous utilisez la méthode First () de linq, qui conformément à la documentation lève une InvalidOperationException si vous l'appelez sur une collection vide.

Si vous vous attendez à ce que le résultat de votre requête soit parfois vide, vous souhaiterez probablement utiliser FirstOrDefault (), qui retournera la valeur null si la collection est vide, au lieu de lancer une exception.

11
Marty Dill

Au lieu de .First(), remplacez-le par .FirstOrDefault()

5
c0deNinja

Une partie de la réponse à 'gérer' le 'La séquence n'a pas d'éléments' Exception dansVBest de tester vide

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

Où MyMap est la séquence interrogée renvoyant vide/null. FYI

0
ransems

La valeur est null, vous devez vérifier pourquoi ... (en plus de la mise en œuvre des solutions proposées ici)

Vérifiez les connexions matérielles.

0
user1012506