Bonsoir,
J’aurais besoin d’un peu d’aide (lien ou autre) pour me dépatouiller de mon problème !
J’utilise EF 4.1.0 pour accéder à une base SQL Server, j’ai crée mon model et j’aimerais binder une requête sur un DGV
Définition du context + variables :
Je charge le bindingsource
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim ctx As New PhilaEntities ' fermé à la fermeture du Form par "ctx.Dispose()" Dim CivToDelete As Civilite ' utilisé pour suppression directe sur ligne du DGV
Quelle est la meilleure solution pour « charger » le résultat d’une requete, faire un list(of ) ou un ObjectResult(Of ) ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ctx.Civilites.Load() CiviliteBindingSource.DataSource = ctx.Civilites.Local
J’ai un bouton save
Une fonction pour supprimer directement depuis la ligne du DGV
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CiviliteDataGridView.EndEdit() CiviliteBindingSource.EndEdit() Try ctx.SaveChanges() Catch ex As Exception MessageBox.Show("erreur dans le savechange = " & e.ToString) End Try
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub CiviliteDataGridView_UserDeletedRow(sender As Object, e As System.Windows.Forms.DataGridViewRowEventArgs) Handles CiviliteDataGridView.UserDeletedRow If True Then If CivToDelete IsNot Nothing Then ctx.Civilites.Remove(CivToDelete) CivToDelete = Nothing End If End If End Sub Private Sub CiviliteDataGridView_UserDeletingRow(sender As Object, e As System.Windows.Forms.DataGridViewRowCancelEventArgs) Handles CiviliteDataGridView.UserDeletingRow CivToDelete = TryCast(CiviliteBindingSource.Current, Civilite) End Sub
Et un bouton delete
Résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If MessageBox.Show("Etes vous sûr de vouloir supprimer cette ligne ?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then CiviliteBindingSource.RemoveCurrent() End If
- Ajouts / modifs : pas de pb
- si je supprime une ou plusieurs lignes directement sur le DGV puis save : pas de pb
- si je sélectionne une ligne sur le DGV et que je clique sur delete, la ligne se supprime du DGV mais le save ou ne remplit pas sa fonction ou me génère une erreur System.EventArgs
Bref tout conseil sera le bienvenu !
Bertrand
Partager