【发布时间】:2013-02-11 23:22:49
【问题描述】:
我有一个 Datagridview,我想删除我的 MySQL 数据库中的一行。
我有一些代码,但我得到一个错误,它说 ID 为空。我的 ID 是一个字符串,它是检查列的 ID 的值。我的第一列“第 0 列”是一个复选框列
代码如下:
如果您不明白我在问什么,请随时提出具体问题。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim RowsToDelete As New List(Of DataGridViewRow)
Try
For Each row As DataGridViewRow In DataGridView1.Rows
If row.Cells(0).Value = True Then
DeleteRow(row.Cells(1).Value)
RowsToDelete.Add(row)
End If
Next
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
For Each rowtodelete In RowsToDelete
DataGridView1.Rows.Remove(rowtodelete)
next
End Sub
Private Sub DeleteRow(ByVal ID As Integer)
Dim MySQLCon As New MySqlConnection
Dim ConnectionString As String = "server=localhost;user id=root;password=;database=business elements"
MySQLCon.ConnectionString = ConnectionString
Dim CMD As MySqlCommand
MySQLCon.Open()
Try
CMD.Connection = MySQLCon
CMD.CommandText = "DELETE FROM `users` WHERE `ID` = " & ID
Catch ex As Exception
End Try
MySQLCon.Close()
MySQLCon.Dispose()
End Sub
【问题讨论】:
-
你能发布你的确切代码吗?在上面的代码中,您在查看 ID 之前设置了 CommandText。此外,这很容易受到 SQL 注入的影响——请考虑使用参数化查询。
-
是的,我有它,它仍然说同样的事情..我不明白你在说什么,你能解释一下..
-
查看我的回答,看看是否没有帮助。不使用参数化查询,但比运行多次删除更有效。
-
顺便说一句——假设你的 ID 在你的 For 循环中设置正确......
标签: mysql vb.net datagridview