Veri tabanındaki bir satırı silmek için bazı işlemler yapmanız gerekir.
İlk silindi olarak
var rowsToDelete = dataSet.Tables[0].AsEnumerable()
.Where(r => r.Field<DateTime?>(dateColumn) < minDate ||
r.Field<DateTime?>(dateColumn) > maxDate));
Şimdi her satırı işaretleme başlamak kriterlerinizle eşleşen tüm satırları bulmak. silinmiş olarak önceki adım işaretleri yalnızca satır, satır datatable hala ama artık erişilebilir (Ve RowState == DataRowState.Deleted içeren bir satır kullanmaya çalışıyor olduğunu
foreach(DataRow row in rowsToDelete)
row.Delete();
Bildirim istisna neden olur)
Şimdi Ayrıca, bu kod veritabanı tablosu üzerinde bir şey değişmez unutmayın ama sadece hafızada da içinde değişiklikler yapar DataTable
dataSet.Tables[0].AcceptChanges();
arayarak bu satırları kaldırmak olabilir taTable. Eğer veritabanı tablosundan satırları kaldırmak istiyorsanız, o zaman veritabanınız için özel bir ADO.NET koduna ihtiyacınız var - Örneğin Sql Server'da bir toplu silme için SqlDataAdapter.Update yöntemini veya tek SqlCommand dizisini çağırmalısınız. Silinecek satırın her biri için uygun DELETE ifadesi.
Neden sadece satırlar arasında dolaşıp 'table.Rows.Remove 'çağırmak (..'? –
Sizin deyiminiz DateTime column_ içeren bir datatable açıklamasının yapılması gerekir. Bu durumda tablonuz bir DateTime sütunu içermiyor? – Steve
Bazı sütunlar ile bir veritabam var ve ben bir tane datetime sütunu olan bir veritabam var. Tabloda çok sayıda satır var, belirli satırların datetime değerine bağlı olarak bazı satırların silinmesi gerekiyor – Vinnie418