Je remarque juste que si l'utilisateur modifie quelque chose dans un DataGridView
et sélectionne également la dernière (nouvelle) ligne sans y entrer de données, alors lorsque l'événement HasChanged
se déclenche, cette dernière nouvelle ligne est incluse dans ceux à ajouter à la base de données. J'obtiens alors une erreur parce que je ne peux pas mettre cet enregistrement dans la base de données en raison des valeurs nulles. Je voudrais exclure cette rangée dans cette situation particulière car elle ne devrait pas être traitée comme une ligne à ajouter. Voici mon code actuel:Dataset a des modifications pour la nouvelle ligne
For Each row As DataGridViewRow In Grid.Rows
If Not row.IsNewRow Then
Dim cellValue As String = String.Empty
For i = 1 To row.Cells.Count - 1
cellValue = row.Cells(i).Value.ToString
If String.IsNullOrEmpty(cellValue) Then
MsgBox("All fields has to be filled out")
Exit Sub
End If
Next
End If
Next
marke.MakeChangesDS()
Public Sub MakeChangesDataSet() Implements IDAL.MakeChangesDataSet
If Not GetGeschaftDataSet.HasChanges Then
MessageBox.Show("No changes to be done", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
Dim i As Integer
Try
Using MyConnection = New SqlConnection(strcon)
Using cmd As New SqlCommand("SELECT * FROM T_Marke", MyConnection)
MyConnection.Open()
' Create a data adapter in the method and throw it away afterwards
Using GetProjectsDataAdapter = New SqlDataAdapter(cmd)
Dim cmdbuilder As New SqlCommandBuilder(GetProjectsDataAdapter)
i = GetProjectsDataAdapter.Update(GetGeschaftDataSet, "trial1")
End Using
End Using
End Using
MessageBox.Show("Updated" & i & " marks", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
Je pense que je devrais vérifier et l'exclure dans la fonction MakeChangesDataSet.