Vb.net 从Datagridview中删除记录
我在从datagridview中删除记录时遇到问题,因为每次我尝试删除记录时,它都会出错。错误显示“没有为一个或多个必需参数提供值”。 这是我的代码:Vb.net 从Datagridview中删除记录,vb.net,winforms,datagridview,Vb.net,Winforms,Datagridview,我在从datagridview中删除记录时遇到问题,因为每次我尝试删除记录时,它都会出错。错误显示“没有为一个或多个必需参数提供值”。 这是我的代码: Private Sub delete_Click(sender As Object, e As EventArgs) Handles delete.Click If Me.DataGridView1.Rows.Count > 0 Then If Me.DataGridView1.SelectedRows.Count
Private Sub delete_Click(sender As Object, e As EventArgs) Handles delete.Click
If Me.DataGridView1.Rows.Count > 0 Then
If Me.DataGridView1.SelectedRows.Count > 0 Then
Dim myPrimaryKey As Integer = Me.DataGridView1.SelectedRows(0).Cells("id").Value
If Not cnn.State = ConnectionState.Open Then
cnn.Open()
End If
Dim cmd As New OleDb.OleDbCommand
cmd.Connection = cnn
'cmd.CommandText = "DELETE * FROM attendance " & intemployeeno
cmd.CommandText = "DELETE FROM VehicleDefects WHERE id=" & myPrimaryKey
cmd.ExecuteNonQuery()
Me.refreshdata()
Else
MessageBox.Show("Select 1 row before you hit Delete")
cnn.Close()
End If
End If
End Sub
像这样试试
cmd.CommandText = "DELETE FROM VehicleDefects WHERE id='" & myPrimaryKey & "'"
我想你可能对我有问题
向我们显示refreshdata()子例程/函数的代码多次
“一个或多个必需参数没有给定值”。
此错误是由于列名无效造成的。我建议您在cmd.CommandText=“DELETE FROM VehicleDefects WHERE id=“&myPrimaryKey
line中检查拼写,您的“id”列可能不是数字数据类型,如果不是,您需要将“myPrimaryKey”包装在刻度中。。。另外,最好将CommandText粘贴到一个虚拟查询中,然后运行它来查看发生了什么,并告诉您问题出在哪里。您介意解释一下为什么这样做会有效吗。这将是伟大的,因为OP可能不明白为什么这可能有效或无效;你没有解释你的答案。。。只是一个想法。嗯。。。不客气,但这不是最佳做法,而且很容易出现SQL注入。是的,我同意上述修复对整型字段没有用处。我现在已经设法解决了这个问题,这是因为commandtext中的列名拼写错误。