DataGridViewがあり、別の列(column1)である対応する「ID」についてCheckColumn(「chk」と名付けた)でチェックされるすべての行が必要です。
チェックされたユーザーを削除するためにMySQLコマンドを実行するには、この情報が必要です。
どうやって始めたらいいのかわからないので、嫌いにならないように助けてください:)
DataGridViewがあり、別の列(column1)である対応する「ID」についてCheckColumn(「chk」と名付けた)でチェックされるすべての行が必要です。
チェックされたユーザーを削除するためにMySQLコマンドを実行するには、この情報が必要です。
どうやって始めたらいいのかわからないので、嫌いにならないように助けてください:)
CheckColumn'chk'だけではこれができないと思います。代わりに、のすべての行を反復処理しDataGridView
、CheckColumnの値がtrueであるかどうかを確認します。
これはうまくいけばあなたが始めることができる例です。チェックされたすべての行を削除するボタンクリックルーチンがあると想像してください。このルーチンでは、の各行を調べながら、CheckColumnDataGridView
の値を持つ行をに格納します。私の例では、ID列が最初の列で、CheckColumnが2番目の列であると想定しています。私の例の配列インデックスをニーズに合わせて調整したり、インデックスの代わりに名前で列にアクセスしたりできます。チェックされた行については、SQLトランザクションを実行する関数を呼び出すことができます。True
List
全体を調べ終わったら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コマンドを実行することを検討することをお勧めします。しかし、あまり先にジャンプすることなく、これはあなたが始めるのに十分なはずです。