Bonjour, je souhaiterai mettre à jour ma base de données à partie de l'edition direct de mon dgv qui est bindé avec un bindingSource.
Voici le code que je tente d'executer:
A l'initialisation :
Ensuite, La fonction qui recupere les données (inspirer d'un ex du web):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void Init() { masterDataGridView.DataSource = masterBindingSource; detailsDataGridView.DataSource = detailsBindingSource; GetData();
L'event qui est censé mettre a jour mon DGV :
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
23
24
25
26
27
28
29
30
31 private void GetData() { try { string connectionString = "provider=Microsoft.JET.OLEDB.4.0;data source =Asso.mdb;"; OleDbConnection connection = new OleDbConnection(connectionString); data = new DataSet(); masterDataAdapter = new OleDbDataAdapter("select * from Famille", connection); masterDataAdapter.Fill(data, "Famille"); detailsDataAdapter = new OleDbDataAdapter("select * from Enfant", connection); detailsDataAdapter.Fill(data, "Enfant"); DataRelation relation = new DataRelation("FamilleToEnfant", data.Tables["Famille"].Columns["FamilleId"], data.Tables["Enfant"].Columns["FamilleId"]); data.Relations.Add(relation); masterBindingSource.DataSource = data; masterBindingSource.DataMember = "Famille"; detailsBindingSource.DataSource = masterBindingSource; detailsBindingSource.DataMember = "FamilleToEnfant"; } catch { } }
Et sur la ligne en gras/rouge j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void masterDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { DataSet dataSetChanged = data.GetChanges(DataRowState.Modified); masterDataAdapter.Update(dataSetChanged, "Famille"); }
Merci de votre aide.L'exception System.Data.DBConcurrencyException n'a pas été gérée
Message="Violation de l'accès concurrentiel : UpdateCommand a affecté 0 des enregistrements 1 attendus."
Source="System.Data"
RowCount=1
.....
Si quelqu'un a un exemple de mise a jour de base à partir de l'edition direct d'un DGV je suis preneur
PS: j'ai bien sur creer la requete update qui va bien, mais pas souci de clarter du message je ne l'ai pas posté. Si quelqu'un souhaite la voire pour plus de detail je la mettrai dans un post separé.
Partager