Ich merke nur, dass, wenn der Benutzer etwas in einem DataGridView
ändert und auch die letzte (neue) Zeile ohne Eingabe von Daten in es wählt, wenn das HasChanged
Ereignis ausgelöst wird diese letzte neue Zeile enthalten ist diejenigen, die zur Datenbank hinzugefügt werden sollen. Ich bekomme dann einen Fehler, weil ich diesen Datensatz wegen der Nullwerte nicht in die Datenbank aufnehmen kann. Ich möchte diese Zeile in dieser speziellen Situation ausschließen, da sie nicht als eine hinzugefügt werden soll. Im Folgenden finden Sie meine aktuellen Code:Datensatz hat Änderungen für neue Zeile
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
Ich denke, ich sollte überprüfen und es in der MakeChangesDataSet Funktion ausschließen.