Hi,
ich habe ein Problem beim löschen von Zeilen.
Ich gehe wie folgt vor:
1:
Nun habe ich die Einträge aus meiner SQL Datenbank in dem Datagridview. Wenn ich nun die letzte Zeile markiere und diese dann wie folgt lösche:
Funktioniert das Löschen ohne Probleme. Der Eintrag wird gelöscht.
Nun zum Problem. Wenn ich aber anstatt die letzte Zeile im Datagridview markiere, irgendwo zwischendrin, erhalte ich diesen Fehler in einer MessageBox:
Der Fehler wird bei ausgelöst. Wenn ich den Codebereich in Try/Catch setze, erhalte ich den Fehler trotzdem. Nachdem ich den Fehler weggeklickt habe, wird die Zeile aber gelöscht und die Datenbank wird auch erfolgreich gespeichert.
Ich weiß nun nicht wie ich diesen Hinweis ausgeblendet bekomme bzw. korrigieren kann.
Folgendes habe ich probiert:
- Zeile in der BindingSource suchen und dann in dieser löschen
- Über RowState den Status auslesen und nur wenn nicht "Deleted" die Methode ausführen
Kann mir da einer helfen?
Danke Euch.
ich habe ein Problem beim löschen von Zeilen.
Ich gehe wie folgt vor:
1:
VB.NET-Quellcode
- Dim TableName As String = "[Table_" & Name & "_DB]"
- Dim queryString As String = "SELECT * FROM dbo." & TableName
- SQL_TableAdapter = New SqlDataAdapter(queryString, VarConnectionString)
- SQL_TableAdapter.Fill(SQL_DataSet, TableName)
- SQL_BindingSource.DataSource = SQL_DataSet.Tables(TableName)
- DataGridView_DB.DataSource = SQL_BindingSource
Nun habe ich die Einträge aus meiner SQL Datenbank in dem Datagridview. Wenn ich nun die letzte Zeile markiere und diese dann wie folgt lösche:
VB.NET-Quellcode
- For Each selectedRow As DataGridViewRow In DataGridView_DB.SelectedRows
- Me.DataGridView_DB.Rows.Remove(selectedRow)
- Next
- Dim TableName As String = "[Table_" & Name & "_DB]"
- Dim cb As SqlCommandBuilder = New SqlCommandBuilder(SQL_TableAdapter)
- SQL_TableAdapter.Update(SQL_DataSet, TableName)
- SQL_TableAdapter.DeleteCommand = cb.GetDeleteCommand(True)
- SQL_TableAdapter.UpdateCommand = cb.GetUpdateCommand(True)
- SQL_TableAdapter.InsertCommand = cb.GetInsertCommand(True)
- Me.DataGridView_DB.DataSource = SQL_BindingSource
Funktioniert das Löschen ohne Probleme. Der Eintrag wird gelöscht.
Nun zum Problem. Wenn ich aber anstatt die letzte Zeile im Datagridview markiere, irgendwo zwischendrin, erhalte ich diesen Fehler in einer MessageBox:
Der Fehler wird bei ausgelöst. Wenn ich den Codebereich in Try/Catch setze, erhalte ich den Fehler trotzdem. Nachdem ich den Fehler weggeklickt habe, wird die Zeile aber gelöscht und die Datenbank wird auch erfolgreich gespeichert.
Ich weiß nun nicht wie ich diesen Hinweis ausgeblendet bekomme bzw. korrigieren kann.
Folgendes habe ich probiert:
- Zeile in der BindingSource suchen und dann in dieser löschen
- Über RowState den Status auslesen und nur wenn nicht "Deleted" die Methode ausführen
Kann mir da einer helfen?
Danke Euch.