Bonjour,

J'utilise VB.NET 2010 express.

J'ai créé une base de donnée SQL (SQL Server 2008 R2) et j'en récupère les données dans un DataSet avant de les afficher dans une DataGridView. Jusque là aucun problème.

Si j'édite une cellule de ma DataGidView et que pour valider je clique n'importe quelle cellule d'une ligne au dessus ou en dessous dans la DataGridView, la BDD SQL sera mise à jour sans problème.

Par contre si j'édite une cellule de ma DataGidView et que pour valider je clique sur une autre cellule de la même ligne dans la DataGridView, la BDD SQL ne sera pas mise à jour. L'affichage dans la DataGridView est correct mais lorsque je recharge des données de la BDD SQL je constate que celles-ci sont restées les mêmes qu'avant la modification.

Quelqu'un connait-il la raison de ce problème et surtout la solution pour le résoudre ?

Merci d'avance


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
32
33
34
35
 
Imports System.Data.SqlClient
Public Class Form
    Public Connexion As SqlConnection = Nothing
    Public Adaptateur2 As SqlDataAdapter = Nothing
 
    Private Sub Form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Connexion = New SqlConnection(ConnexionString)
        Adaptateur2 = New SqlDataAdapter("SELECT * FROM Propriétés", Connexion)
 
        Dim CommandeBuilder2 As SqlCommandBuilder = New SqlCommandBuilder(Adaptateur2)
 
        Connexion.Open()
        Adaptateur2.Fill(MonDataSet, "Propriétés")
 
        MonViewPropriétés = New DataView(MonDataSet.Tables("Propriétés"))
        MonViewPropriétés.RowFilter = "Archive = 'N'"
        MonViewPropriétés.Sort = "Code ASC" 'On trie par ordre croissant
 
        Me.DataGridView1.DataSource = MonViewPropriétés
 
    End Sub
 
'Jusque là pas de problème
 
'Après modification du contenu d'une cellule, si je clique sur n'importe quelle cellule d'une autre ligne située au dessus ou en dessous la BDD SQL est mise à jour
'Par contre si je clique sur une autre cellule de la même ligne aucune modification n'est faite dans la BDD SQL
 
    Private Sub DataGridView1_CellEndEdit(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellEndEdit
        If Adaptateur2 IsNot Nothing Then
            Adaptateur2.Update(MonDataSet, "Propriétés")
        End If
    End Sub
 
End Class