Vb.net 从datagridview中删除记录

Vb.net 从datagridview中删除记录,vb.net,datagridview,Vb.net,Datagridview,在VB2012中,我创建了一个以SQL2012为后端的学生管理软件。单击“删除”按钮时,以下代码用于从datagridview中删除所选记录: Private Sub Delete_Click(sender As Object, e As EventArgs) Handles Delete.Click Dim DelStudent As StudentDataSet1._masterRow DelStudent= CType(CType(Studentmaste

在VB2012中,我创建了一个以SQL2012为后端的学生管理软件。单击“删除”按钮时,以下代码用于从datagridview中删除所选记录:

 Private Sub Delete_Click(sender As Object, e As EventArgs) Handles Delete.Click
        Dim DelStudent As StudentDataSet1._masterRow
        DelStudent= CType(CType(StudentmasterBindingSource.Current, DataRowView).Row, StudentDataSet1.Student_masterRow)
        DelStudent.Delete()
        Me.Validate()
        Me.StudentmasterBindingSource.EndEdit()
        Me.Student_masterTableAdapter.Update(StudentDataSet1.Student_master)
End Sub

但不是删除选定的行,而是删除第一行。请帮助…

从绑定源的角度来看,所选行不是必需的当前行。你需要使用。每个都是一个,您应该能够检索并将其强制转换到
数据行
,然后使用
删除

下面的代码也很有用

 Private Sub btnRemoveItem_Click(sender As Object, e As EventArgs) Handles btnRemoveItem.Click
        If datagridviewname.SelectedRows.Count > 0 Then
            For i As Integer = datagridviewname.SelectedRows.Count - 1 To 0 Step -1
                datagridviewname.Rows.RemoveAt(datagridviewname.SelectedRows(i).Index)
            Next
        Else
            MessageBox.Show("Select Row to remove")
        End If
    End Sub

您可以通过只更新已有的数据集来删除或更新数据库,但您是否尝试过使用SQL语句对数据库进行删除?我建议您使用SQL语句对数据库进行查询或执行,并将所有内容重新绑定到网格上。从长远来看,这应该更为重要,特别是如果您计划使用VB.NET以外的其他脚本语言。无论您使用什么后端,SQL几乎都是一样的。