ListView Nesnesinde Çoklu Seçili CheckBox ların Veritabanından Silinmesi

Formumuza 1 adet ListView nesnesi 1 adet Button ekleyin.
İlk önce Access veritabanına bağlanıp,  verilerimizi listview nesnesine gösterimini sağlıyoruz.(Şekil 1)
Resim1
Şekil 1
ListView1.CheckBoxes = True kod parçası yardımıyla Listview nesnesinde checkboxlu
sütun oluşturuyoruz.
Son olarak, aşağıda belirtilen sql sorgusuylada seçili checkbox satırlarını siliyoruz.
Bu arada;
ListView1.CheckedItems.Count komutu ile
seçili satır sayısını;
ListView1.CheckedItems(i).Text ile de
seçili checkbox ın satır nosunu alıyoruz.


Resim2
Şekil 2

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListView1.View = View.Details
        ListView1.GridLines = True
        ListView1.CheckBoxes = True
        ListView1.Columns.Add("id", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Ad", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Soyad", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("Ogrenim", 100, HorizontalAlignment.Center)
        ListView1.Items.Clear()
        Dim baglan As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=veri.mdb;")
        Dim adp As New OleDb.OleDbDataAdapter()
        adp.SelectCommand = New OleDb.OleDbCommand("Select * From personel", baglan)

        baglan.Open()

        Dim ds1 As New DataSet()
        adp.Fill(ds1)

        If baglan.State = ConnectionState.Open Then
            ’veritabanına baglandıgında buton arkaplanı yeşil
            btnSil.BackColor = Color.Green
        Else
            ’veritabanına baglantı yoksa buton arkaplanı kırmızı
            btnSil.BackColor = Color.Red
        End If

        baglan.Close()

        Dim item As New ListViewItem

        For Each row As DataRow In ds1.Tables(0).Rows
            item = ListView1.Items.Add(row.Item("id"))
            item.SubItems.Add(row.Item("Ad"))
            item.SubItems.Add(row.Item("Soyad"))
            item.SubItems.Add(row.Item("Ogrenim"))
        Next

      


    End Sub

    Private Sub btnSil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSil.Click
        Dim i As Integer
        Dim str(ListView1.CheckedItems.Count), sorgu As String
        Dim secim As ListViewItem = ListView1.CheckedItems(0)

        For i = 0 To ListView1.CheckedItems.Count - 1
            str(i) = ListView1.CheckedItems(i).Text

            sorgu = "DELETE FROM personel WHERE id = ’" & str(i).ToString & "’"
            Dim baglan As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=veri.mdb;")
            Dim adp As New OleDb.OleDbDataAdapter()
            Dim cmd As OleDb.OleDbCommand
            cmd = New OleDb.OleDbCommand(sorgu, baglan)
            adp.DeleteCommand = cmd


            Try

                baglan.Open()

                Dim ds As New DataSet()
                Dim dt As DataTable

                cmd.ExecuteNonQuery()

                ’MsgBox("Seçili Kayıt Silindi... Bahadır ŞAHİN")

                adp.Update(ds, "personel")

                ds.Tables("personel").Reset()

                adp.Fill(ds, "personel")

                dt = ds.Tables("personel")

             

            Catch ex As Exception

                ’MessageBox.Show("Bahadır ŞAHİN Hata Bildirimi : " & vbCrLf & ex.Message, "Hata Mesajı", MessageBoxButtons.OK, MessageBoxIcon.Error)

            Finally


                baglan.Close()

            End Try
        Next

        sayfayenile()
    End Sub

    Sub sayfayenile()
        ListView1.Items.Clear()
        Dim baglan As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=veri.mdb;")
        Dim adp As New OleDb.OleDbDataAdapter()
        adp.SelectCommand = New OleDb.OleDbCommand("Select * From personel", baglan)

        baglan.Open()

        Dim ds1 As New DataSet()
        adp.Fill(ds1)

        If baglan.State = ConnectionState.Open Then
            ’veritabanına baglandıgında buton arkaplanı yeşil
            btnSil.BackColor = Color.Green
        Else
            ’veritabanına baglantı yoksa buton arkaplanı kırmızı
            btnSil.BackColor = Color.Red
        End If

        baglan.Close()

        Dim item As New ListViewItem

        For Each row As DataRow In ds1.Tables(0).Rows
            item = ListView1.Items.Add(row.Item("id"))
            item.SubItems.Add(row.Item("Ad"))
            item.SubItems.Add(row.Item("Soyad"))
            item.SubItems.Add(row.Item("Ogrenim"))
        Next

    End Sub
  
End Class