Merhabalar, bu dersimizde C# DataTable Satır Silme Nasıl Yapılır? konusuna bakacağız. Hem LINQ ile hemde standart yolla bir datatable içindeki satırı silme işlemini görmüş olacağız. DataTable içindeki bir satırı iki farklı yol silme yöntemine bakalım.
C# DataTable Satır Silme Nasıl Yapılır?
Elimizde bunu yapabilecek iki yöntem var. İlk olarak standart yolu göstereceğim. DataRow sınıfını kullanarak silme işlemini görelim. Öncelikle DataTable Örnekleri dersimden bir örnek datatable alalım. Ben stok datatable‘ını alıyorum.
İlk silme metodumuzu görelim.
DataTable dtStok = DataTable_Stok_Example(); for (int i = dtStok.Rows.Count - 1; i >= 0; i--) { DataRow dr = dtStok.Rows[i]; if (dr["StokKodu"] == "S001") dr.Delete(); } dtStok.AcceptChanges();
Yeni bir DataTable tanımladım ve atamasını yaptım. For döngüsü ile DataRow sınıfını kullanarak StokKodu kolonunda S001 kodlu olan stokların silinmesini istedik. Son satırdaki AcceptChanges(); satırı olmadan da silme işlemi yapılıyor.
Şimdi diğer yolumuz olan LINQ yöntemi ile silme konusuna bakalım.
LINQ ‘i bilmeyenler için açıklayalım. LINQ, kısaca C# kodları ile SQL Sorguları yazabileceğimiz bir yöntemdir.
var query = dtStok.AsEnumerable().Where(r => r.Field<string>("StokKodu") == "S001"); foreach (var row in query.ToList()) row.Delete();
Yukarıdaki kodlarda gördüğünüz gibi bir where komutu ile StokKodu “S001” olanları seçerek, ForEach döngüsü ile silme işlemi yaptık. Yukarıdaki kodları daha da kısaltmak isteseniz kodlarınızı şu şekilde düzenleyebilirsiniz.
dtStok.AsEnumerable().Where(r => r.Field<string>("StokKodu") == "S001").ToList().ForEach(row => row.Delete()); dtStok.AcceptChanges();
Gördüğünüz gibi bu şekilde çok daha kısa… :)
Kodlarımız bu kadardı arkadaşlar.
Neden hep döngü ile sildik derseniz, DataTable üzerinde direk spesifik olarak belirlenmiş satırları silemiyoruz. He seferinde döngü kullanma zorunluluğumuz var.
Eğer silmek istemezseniz, görmek istemediğiniz satırların çıkarıldığı farklı bir DataTable türetip kullanabilirsiniz. Aşağıdaki kodlarda hem standart hemde LINQ ile yapılmış örnekleri görebilirsiniz.
DataTable dt2 = dtStok.Select("StokKodu <> 'S001'").CopyToDataTable(); DataTable dt3 = dtStok.AsEnumerable().Where(r => r.Field<string>("StokKodu") != "S001").CopyToDataTable();
Bu satırlar, StokKodu “S001” olan kayıtları listeden çıkarmış olacaktır. Üstelik tüm verilerin yer aldığı DataTable‘de bir değişiklik yapmamış olacağız.
Yukarıdaki kod örnekleri ile datatable içindeki satırı silme işlemini de halletmiş oluyoruz.
C# DataTable Satır Silme Nasıl Yapılır? yazımda bu kadardı arkadaşlar.
C# Eğitim Seti sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme bağlantıdan ulaşabilirsiniz…
Sağlıcakla ve takipte kalın. ;)
452. Yazı Bitti… :)