Vb.net 如何检测是否选中datagridview的复选框

Vb.net 如何检测是否选中datagridview的复选框,vb.net,winforms,Vb.net,Winforms,我想根据DatagridView中选中的单元格删除数据库中的值。当我运行代码,甚至不检查单元格时,它仍将删除所有单元格。如果在单击事件期间您没有选择任何已检查的单元格,请查看加载数据网格的代码。您不应该在回发期间进行数据绑定,以便保留用户传递回服务器的值。大致如下: btndelete_Click() for each row as Datagridview Row In DGV.Rows If Convert.ToBoolean(row.Cells(3).Value) = True

我想根据DatagridView中选中的单元格删除数据库中的值。当我运行代码,甚至不检查单元格时,它仍将删除所有单元格。

如果在单击事件期间您没有选择任何已检查的单元格,请查看加载数据网格的代码。您不应该在回发期间进行数据绑定,以便保留用户传递回服务器的值。大致如下:

btndelete_Click()
  for each row as Datagridview Row In DGV.Rows
    If Convert.ToBoolean(row.Cells(3).Value) = True Then     
      Try
        sql = "Delete from Student Where ID = '" & row.Cells(0).Value & "'"
        connect()
        cmd = New OledbCommand (sql, conn)
        cmd.ExecuteNonQuery()
      Catch ex As Exception
      End Try
    End If
  Next
End Sub

我将使用调试器逐步完成这一过程,并查看值所包含的内容。您应该能够查看单元格(3)中的原始信息。值保持不变,并从中查看代码运行到下一步的位置。当然,请注明cmd.ExecuteNonQuery和连接代码,直到您弄清楚为止。另外请注意,您正在隐藏任何可能由于未在catch块中至少显示ex.message而引发的异常。Yes please ID是datagridview中的一列,也是数据库中表的一列,它是datagridview中的Windows formA文本字段。因此,您是否仔细查看了执行时保留的值你的条件声明的内容?代码按张贴的方式工作。问题出在别的地方。确保你看的是正确的数据库。我不明白你的意思。请再来
if (!Page.IsPostBack){
    dataGrid.DataSourceID = "someDataSource";
    dataGrid.DataBind();
}