【发布时间】:2014-05-07 16:58:24
【问题描述】:
我想通过代码删除datagrid的记录并更新数据库。
我使用以下代码从数据网格datagrid1.items.RemoveAt(0) 中删除记录,
这行给出了一个错误消息:
在使用 itemssource 时操作无效
但是如果我使用键盘删除按钮删除数据网格的记录,然后按btnUpdate_Click 更新数据库,那么它可以正常工作而没有错误。
所以请告诉我发生这种情况的正确原因。 希望大家能理解我的问题。 我的所有代码都在这里:
Dim db As New dbconnect()
Dim cmd As MySqlCommand
Dim cmdBuild As MySqlCommandBuilder
Dim da As MySqlDataAdapter
Dim dt As New DataTable
Private Sub btn_DayBook_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btn_DayBook.Click
cmd = New MySqlCommand("select * from transactions", db.conn)
dt = New DataTable()
da = New MySqlDataAdapter(cmd)
da.Fill(dt)
DataGrid1.DataContext = dt
DataGrid1.ItemsSource = dt.DefaultView
cmdBuild = New MySqlCommandBuilder(da)
End Sub
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnUpdate.Click
Try
cmdBuild.GetUpdateCommand()
da.Update(dt)
btn_DayBook_Click(sender, e)
MsgBox("Record Updated")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnDelete.Click
Try
DataGrid1.Items.RemoveAt(DataGrid1.SelectedIndex)
DataGrid1.Items.Refresh()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Try
cmdBuild.GetDeleteCommand()
da.Update(dt)
MsgBox("Record Deleted")
Catch ex As Exception
MsgBox(ex.ToString)
End Try
btn_DayBook_Click(sender, e)
End Sub
【问题讨论】: