Bu örneğimizde Datagridview üzerinden checkbox vasıtasıyla birden fazla satırın seçilerek silinmesi işlemini gerçekleştireceğiz. Öncelikle Formumuzu aşağıdaki şekilde tasarlıyoruz.
Örneğimizde “sirket” isimli veritabanında “musteriler” tablosunu kullanacağız.Kullanacağımız veritabanı aşağıdaki şekilde olacaktır.
Veritabanımızı tasarladıktan sonra bağlantı işlemine geçiyoruz. Kodları incelediğinizde “doldur” isimli metot ile Form_Load olayında yani form açıldığında verilerimizin datagridview‘ de görüntülenmesini sağlıyoruz.
Sil butonuna ise seçilen checkbox‘ lara göre kayıtların silinmesi işlemlerini gerçekleştiriyoruz. Böylelikle checkbox’ların seçili oluşuna bağlı olarak datagridview’ de seçilen birden fazla kaydın silinmesini sağlıyoruz.
Programa ait kodlar şu şekilde olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace datgridcoklusilme { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SqlConnection con; SqlDataAdapter da; SqlCommand cmd; DataSet ds; void doldur() { con = new SqlConnection("server=.; Initial Catalog=sirket;Integrated Security=SSPI"); da = new SqlDataAdapter("Select *From musteriler", con); ds = new DataSet(); con.Open(); da.Fill(ds, "musteriler"); dataGridView1.DataSource = ds.Tables["musteriler"]; con.Close(); } private void Form1_Load(object sender, EventArgs e) { doldur(); } private void button1_Click(object sender, EventArgs e) { List selectedItem = new List(); DataGridViewRow drow = new DataGridViewRow(); for (int i = 0; i < = dataGridView1.Rows.Count - 1; i++) { drow = dataGridView1.Rows[i]; if (Convert.ToBoolean(drow.Cells[4].Value) == true) //checkbox seçiliyse { string id = drow.Cells[0].Value.ToString(); selectedItem.Add(id); //seçiliyse listeye ekle } } con.Open(); foreach (string s in selectedItem) //çoklu silme işlemi gerçekleşiyor { SqlCommand cmd = new SqlCommand("delete from musteriler where Musteri_Id='" + s + "'", con); int result = cmd.ExecuteNonQuery(); } con.Close(); // dataGridView1.Rows.Clear(); doldur(); } } } |
Hocam access veri tabanı kullanıyorum. C# da verdiğiniz kodları uyguladım fakat id kolunu otomatik sayı olduğu için hata alıyorum. id kolonunu metin yaptığımda kod bloğu çalışıyor fakat bu sefer database e yeni veri ekleyemiyorum. ” id= ‘”+drow.Cells[0].Value+”‘” yazsamda olmadı. Yardımcı olabilir misiniz?
Güzel yazı paylaşım için teşekkürler
Teşekkürler