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)
 



Ş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.



Şekil 2

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.

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

About Bahadır Şahin

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

1 comments:

Ayhan KAYIKLILAR dedi ki...

Merhaba;

Öncelikle çalışmanız için teşekkür ederim.

Benim şöyle bir sorum olacak;
Listeview'de verileri metin kutusu vasıtasıyla arattırma yabtırabilir miyiz? Evet se nasıl?
Örnek bir çalışma yaparsanız memnun olurum.

Teşekkürler
Kolaylıklar diliyorum

Öne Çıkan Yayın

GridView da Seçili Satırı DetailsView da Göstermek

Merhaba arkadaşlar bu makalemizde GridView nesnesi ile birlikte DetailsView nesanesini birlikte kullanacağız. GridView da seçili satırın de...