Bonjour tout le monde,

Je suis actuellement bloqué sur un projet en VB.NET que l'on dit faire pour l'école.

Le projet en quelques mots : Gestion de stocks d'une pharmacie.

Mon problème : Je dois afficher les stocks disponibles dans un datagridview, on a la possibilité d'envoyer un lot de médicament à une personne. Une fenêtre s'affiche alors avec le choix de l'ID du lot, le visiteur et la date (récupération de l'id et du nom du visiteur dans la bdd)

Mais j'aimerai supprimer le lot de ma collection (la modification sur la BDD marche bien) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub SupprimeLot(ByVal unId As String, ByVal unVisiteur As String, ByVal laDate As Date)
 
 
        Dim laDateOffre As Date = Now
 
        'Modification
        sqlcom = "UPDATE lot_medicament SET LOT_DATEOFFRE = '" & laDateOffre & "' WHERE LOT_ID = '" & unId & "' "
        Me.openbdd()
        Dim cmd As New MySqlCommand(sqlcom, connexionSql)
        cmd.ExecuteNonQuery()
        MsgBox("Modification effectuée.")
 
        'Suppression dans la collection
        Me.mesLots.RemoveAt(Me.rechercheLot(unId))
 
        sqldr.Close()
    End Sub
j'utilise une fonction qui renvoie l'indice correspondant à l'id dans la collection :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Function rechercheLot(ByVal unId As String) As Integer
        Return Me.mesLots.FindIndex(Function(unLot As Lot)
                                        Return unLot.Lot_Id = unId
                                    End Function)
    End Function
Lorsque j'exécute le programme, il fais les modifications mais me met une erreur pour la suppression dans la collection :

L'exception ArgumentOutOfRangeException n'a pas été gérée, l'index était hors limites.


Il trouve bien l'Id mais n'affiche rien dans la collection

Et je bloque sur cette erreur depuis un bon moment, si quelqu'un peut m'apporter une solution je suis preneur

Merci !