0

我有一个 DataGridView,我想要在 CheckColumn(我将其命名为“chk”)中检查的所有行对应的“ID”是另一列(column1)

我需要这些信息来朗读 MySQL 命令以删除已检查的用户..

我什至不知道如何开始请帮助不要讨厌:)

4

1 回答 1

1

我认为您不能仅使用 CheckColumn 'chk' 来做到这一点。相反,遍历 的所有行DataGridView,并找出 CheckColumn 的值是否为真。

这是一个可以帮助您入门的示例。想象一下,您有一个按钮单击例程来删除所有选中的行。在此例程中,当您遍历 中的每一行时,将 CheckColumnDataGridView值为 的行存储到. 在我的示例中,我假设 ID 列是第一列,而 CheckColumn 是第二列。您可以调整我的示例中的数组索引以满足您的需要,或者按名称而不是索引访问列。对于已检查的行,您可以调用执行 SQL 事务的函数。TrueList

当您完成DataGridView整个.TrueDataGridView

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    //Use a list to store all the rows you need to delete
    Dim RowsToDelete As New List(Of DataGridViewRow)

    //Go through each row and find all the ones who's values are checked
    For Each row As DataGridViewRow In DataGridView1.Rows
        //Assume column at index 0 is the ID and column at index 1 is the CheckColumn
        If row.Cells(1).Value = True Then
            DeleteRow(row.Cells(0).Value) //This will call your SQL stored procedure and pass it the ID
            RowsToDelete.Add(row)
        End If
    Next

    //Delete all the rows from the DataGridView that were checked
    For Each rowtodelete In RowsToDelete
        DataGridView1.Rows.Remove(rowtodelete)
    Next
End Sub

Private Sub DeleteRow(ByVal ID As Integer)
    //Call an SQL function here with the ID Value
    //To delete the record from the database
End Sub

您可以通过将 ID 存储在表中并将表作为值传递给您的 SQL 过程来提高性能……我知道您可以在 SQL Server 2008 中执行此操作,但我不确定 MySQL。此外,如果 SQL 调用需要很长时间(在这种情况下似乎不会),您可能需要考虑在与用户界面不同的线程上运行 SQL 命令。但不要跳得太远,这应该足以让你开始。

于 2013-02-11T20:47:27.050 回答