0

DataGridViewがあり、別の列(column1)である対応する「ID」についてCheckColumn(「chk」と名付けた)でチェックされるすべての行が必要です。

チェックされたユーザーを削除するためにMySQLコマンドを実行するには、この情報が必要です。

どうやって始めたらいいのかわからないので、嫌いにならないように助けてください:)

4

1 に答える 1

1

CheckColumn'chk'だけではこれができないと思います。代わりに、のすべての行を反復処理しDataGridView、CheckColumnの値がtrueであるかどうかを確認します。

これはうまくいけばあなたが始めることができる例です。チェックされたすべての行を削除するボタンクリックルーチンがあると想像してください。このルーチンでは、の各行を調べながら、CheckColumnDataGridViewの値を持つ行をに格納します。私の例では、ID列が最初の列で、CheckColumnが2番目の列であると想定しています。私の例の配列インデックスをニーズに合わせて調整したり、インデックスの代わりに名前で列にアクセスしたりできます。チェックされた行については、SQLトランザクションを実行する関数を呼び出すことができます。TrueList

全体を調べ終わったらDataGridView、リストに保存した行のリスト(forの値がTrueチェックされている)を調べて、それらをから削除しますDataGridView

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 に答える