Problème de mise à jour liée aux élément interdépendants de ma table
Bonjour chers membres du forum, j’ai une préoccupation qui est liée à la mise à jour de ma table.
En effet j’ai conçu une application vb.net pour la gestion des opérations de caisse pour le compte
d’une structure et tout fonctionne correctement jusqu’au niveau de la modification de la table où j’ai un bémol.
Le truc c’est qu’une opération est soit une recette ou une dépense d’où j’ai créé une variable
solde = recette - dépense (recette ou dépense est nulle selon la nature de l’opération) qui représente le solde
de chaque opération effectuée.
Pour ce qui est de la part du solde de la caisse à partir d’une opération op2 on a:
E: solde_caisse_op2 = solde_op2 + solde_caisse_op1 ( égal à solde_op1) et cela fonctionne bien en insertion.
Mon problème est que sur par exemple 10 opérations effectuées on décide de modifier la 5ème opération,
comment réajuster le solde de la caisse à partir de la ligne modifiée jusqu’au dernier élément de la table
solde_caisse, vu que les différentes lignes sont dépendantes pour le calcul des différentes soldes
de la caisse d’après l’équation E.
J’ai déjà réfléchi à une solution mais qui me donne une FatalError. En effet j’ai procédé comme suit:
Imports MySql.Data
Imports MySql.Data.Entity
Imports MySql.Data.MySqlClient
Imports MySql.Data.Types
Public solde_operation As Integer = 0
Public MaxId As Integer
Public j As Integer
Public soldecaisse As Integer
Public i As MySqlParameter
'La méthode GetMaxId() me ramène Id_max stocké dans la variable MaxId qui me servira de
'condition d'arrêt de la boucle for
Private Sub GetMaxId()
connecter()
Dim sql As String
sql = "(SELECT MAX(Id\_operation) FROM tbl\_operation)"
Dim query As New MySqlCommand()
query = New MySqlCommand(sql, connecter)
MaxId = Val(query.ExecuteScalar())
connecter.close()
End Sub
'celle-ci me calcule le solde de la caisse au cours de l'opération en cours (soldecaisse) en y
'ajoutant le solde de la caisse précédent
Private Sub GetSoldeCaisse()
connecter()
Dim sql As String
sql = "select ((select Solde\_operation from tbl\_operation where Id\_operation = @i) + (select Solde\_operation from tbl\_operation where Id\_operation = @i-1))"
Dim query As New MySqlCommand()
query = New MySqlCommand(sql, connecter)
i = New MySqlParameter("@i",