2016-03-24 6 views
0

Belirli bir yılın tüm kayıtlarını (ör. 2014) sütun değerlerinden birinin (burada 2014) linq kullanılarak tablosunun birden fazla satırında tekrarlandığı bir veri tabanından nasıl seçerim C# herhangi bir başka yöntem.Yinelenen değerlere sahip bir veri tablosunun tüm kayıtlarını seçin

Bu datatable: Ben DataTables birlikte çalıştığım beri

datatable

+0

Yinelenen tüm kayıtları geri almaya çalışıyorum ama ne yaparsanız yapın çoğaltır ve filtrelenmiş veri verir ... Ama yine de bana yardım edin .. – Babu

cevap

1

tüm kayıtları almak için çalışıyorsanız, kullanım linq sorgusu aşağıdaki Yılın 2014'te yatıyor, BT veri sütunu veri var olmadığını kontrol edecektir, eminim o olacak işler ..

 //selecting all the records of 2014 
     IEnumerable<DataRow> dtrow = default(IEnumerable<DataRow>); 
     dtrow = yourtable.AsEnumerable().Where(x => x.Field<Int64>("year") == Convert.ToInt64("2014")); 
     if (dtrow.Count() > 0) 
     { 
      dataTbl = dtrow.CopyToDataTable(); //dataTbl is the DataTable 
     } 
0

Bir süre oldu ama bu yeter bence.

yıl birden fazla satır boyunca yineleniyor satırları seçmek için:

dt.AsEnumerable().GroupBy(x => x["Year"]).Where(x => x.Count() > 1); 

belirli bir yılda sadece satırları seçmek için: dt sizin System.Data.DataTable

dt.AsEnumerable().Where(x => x["Year"] == "2014"); 

olduğu yere.

+0

Hızlı cevaplarınız için teşekkür ederim, ama sadece 2014'ün kayıtlarını almak istiyorum veya 2015 ve benzeri. – Babu

+0

Umarım benim düzenlemek istediğim şey için biraz daha doğrudur? – Shelby115

+0

Her iki cevabın da Jonz için çok teşekkür ederim. – Babu

0

C# 'den daha hızlı olduğundan veritabanında bunu yapmaya çalışın. DB dizini olabilir ancak C# sahip değil.

select *, count(1) as totalCount 
group by year 
having totalCount > 1