Bu iki veritabam var ve aralarındaki farkı almak istiyorum. Bir örnek:İki DataTables arasında fark nasıl bulunur?
Table1
-------------------------
ID | Name
--------------------------
1 | A
2 | B
3 | C
--------------------------
Table2
-------------------------
ID | Name
--------------------------
1 | A
2 | B
--------------------------
Sadece Tablo 1'de olup tablo2 içinde (Tablo 1-Tablo 2) veri olarak sonuç isteyen
ResultTable
-------------------------
ID | Name
--------------------------
3 | C
--------------------------
Linq ile bu iki benzer çözümler kullanmaya çalıştı, ama her zaman tablo1-tablo2 değil tablo1 döndürür.
DataTable table1= ds.Tables["table1"];
DataTable table2= ds.Tables["table2"];
var diff= table1.AsEnumerable().Except(table2.AsEnumerable(),DataRowComparer.Default);
İkinci çözüm:
var dtOne = table1.AsEnumerable();
var dtTwo = table2.AsEnumerable();
var difference = dtOne.Except(dtTwo);
Yani, hatadır İşte ilk çözüm mü? Bütün cevaplarınız için çok teşekkür ederim. :)
Aynı sınama olup olmadığına bakıp gitmediğini kontrol etmek. İlgili özelliklerin aynı olup olmadığı değil. Bir EqualityComparer'ı kabul eden aşırı yüklemeyi kullanabilir veya çeşitli LINQ + kitaplıklarında uygulanan ExceptBy() uzantı yöntemini, ayrıca Jon Skeets MoreLinq'de (http://code.google.com/p/morelinq/) – Tormod
@ Tormod, ama sonra ilk çözümde 'DataRowComparer' kullanımı nedir? Gerçek sütun değerlerini karşılaştırmak için 'public bool Equals (TRow leftRow, TRow rightRow) 'seçeneğini geçersiz kılar. – hometoast
Veri dosyalarınızı nasıl aldığınızı gösterir misiniz? Verilerin beklediğinizden farklı olması mümkün mü? LINQPad'de hızlı bir örnek yaptım ve ilk çözümün iyi çalışıyor gibi görünüyor. – goric