我有一个Access数据库,但是我遇到了RemoveCurrent
方法删除多行而不是一行的问题。
在表格中,我有一个允许用户选择的组合框
他想要查看/删除哪个项目。
当用户按下删除按钮时,代码将转到我拥有所有表格的表单,并将组合框中的名称与游戏表中具有2列的每一行进行比较,其中一列具有名称,另一行具有名称。日期,两者都是主键,只要游戏不完全等于表中已有的游戏,用户就可以添加具有相同名称或日期的多个游戏。
但是当它删除与组合框中所选行匹配的行时,它不仅会删除相应的游戏,还会删除具有相同日期的每个游戏。 我希望它只删除匹配的游戏。 我的删除功能在下面。
Private Sub but_eliminar_Click(sender As Object, e As EventArgs) Handles but_eliminar.Click
Tabelas.Show()
'Tabelas is the form with every table in the database
Tabelas.JogoBindingSource.MoveFirst()
For Each row As DataGridViewRow In Tabelas.jogos.Rows
cri = Tabelas.jogos.CurrentCell.RowIndex
'Compare the value on the combobox with the table that keeps the games record
If Tabelas.jogos(0, cri).Value = ComboBox1.SelectedValue Then
Dim op = MessageBox.Show("Are you sure you want to delete this game?" & vbNewLine & vbNewLine & "Name: " & Tabelas.jogos(0, >cri).Value & vbNewLine & "Date: " & Tabelas.jogos(1, cri).Value, "Delete game", MessageBoxButtons.YesNo)
If op = vbYes Then
Tabelas.JogoBindingSource.RemoveCurrent()
Tabelas.JogoBindingSource.EndEdit()
Tabelas.JogoTableAdapter.Update(Tabelas.Database1DataSet.Jogo)
'Use this code to update the combobox's menu
Database1DataSet1.Clear()
JogoTableAdapter.Fill(Database1DataSet1.Jogo)
ComboBox1.SelectedIndex = -1
MsgBox("Game deleted successfully")
Exit Sub
End If
If op = vbNo Then
Exit Sub
End If
End If
Tabelas.JogoBindingSource.MoveNext()
Next
Tabelas.Close()
End Sub