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
Partager