Bonjour,
J'essaye en ce moment de créer un programme pour gérer des personnes/structures dans une base de données.
L'ajout et la suppression fonctionnent bien, mais j'ai un problème pour éditer.
J'ai plusieurs associations qui deviennent tables, donc j'ai rajouté aux contraintes des " update on cascade & delete on cascade " ( Histoire de pouvoir modifier/supprimer sur le datagrid et que ça puisse se répercuter sur les autres tables sans requête faramineuses ).
Depuis ce moment là, l'édit ne marche plus, alors qu'il me semblait marcher avant ...
Je vous donne le code de la fonction édit pour une structure
:
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
18
19
20
21
22 Case Is = strchx.Struc Dim MyEditRow As DataRow = Dataset1.Tables(strchoix).Rows(DataGrid1.CurrentRow.Index) MyEditRow.BeginEdit() MyEditRow("nomstruc") = TextBox1.Text MyEditRow("libstruc") = TextBox2.Text MyEditRow("adressestruc") = TextBox3.Text MyEditRow("villestruc") = TextBox4.Text MyEditRow("cedexstruc") = TextBox5.Text MyEditRow("telstruc") = TextBox6.Text MyEditRow("faxstruc") = TextBox7.Text MyEditRow("mailstruc") = TextBox8.Text MyEditRow("sitewebstruc") = TextBox9.Text MyEditRow("libtype") = ComboBox1.SelectedItem Dim MyCommBuild4 As New MySqlCommandBuilder(Data) Data.Update(Dataset1, strchoix) MsgBox("La structure a bien été modifiée", MsgBoxStyle.Information) DataGrid1.Refresh()
Le code pour la table Structure :
Puisque le reste des fonctions marchent ( ajout, suppression ), Je ne pense pas que la cause soit en dehors de ce bout de code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CREATE TABLE `Structure` ( `nomstruc` varchar(25) NOT NULL, `libstruc` varchar(35) NOT NULL, `adressestruc` varchar(35) NOT NULL, `villestruc` VARCHAR(20) NOT NULL, `cedexstruc` varchar(25) NOT NULL, `telstruc` varchar(25) NOT NULL, `faxstruc` varchar(25) NOT NULL, `mailstruc` varchar(25) NOT NULL, `libtype` varchar(25) NOT NULL, `sitewebstruc` varchar(30) NOT NULL, PRIMARY KEY (`nomstruc`), foreign key (`libtype`) references Type(`libtype`) oN DELETE CASCADE ON UPDATE cascade ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
J'ai eu beau chercher, je retrouve souvent le même code, et qui marche chez ces personnes.
Est-ce les deletes/updates on cascade qui posent problèmes ? :'
Pour info, lorsque j'édite, le datagrid change, mais pas la base de donnée, du coup, si je rafraichis le datagrid, il m'affichera l'ancienne valeur, toujours présente dans la bdd.
Je vous serais très reconnaissant de m'aider, de pointer le problème, ou même d'émettre des supositions :p
Partager