Я пытаюсь найти разницу между двумя таблицами данных на основе заданного имени столбца.Я не вижу, что я делаю не так, но когда я передаю две разные таблицы данных, я не получаю результата.
dt1 dt2
ID Percent ID Percent
--- ------- --- -------
1 100 1 100
2 100 2 100
.. ... .. ...
50 0 50 20
.. ... .. ...
, поэтому я вызываю GetTableDiff (dt1, dt2, "Percent") и вместополучая одну строку (ID: 50, процентов: 20), я ничего не получаю.
public static DataTable GetTableDiff(DataTable dt1, DataTable dt2, string sColumn)
{
DataTable dtDiff = new DataTable();
try
{
var diff = from r1 in dt1.AsEnumerable()
join r2 in dt2.AsEnumerable()
on r1.Field<int>(sColumn)
equals r2.Field<int>(sColumn) into g
where !g.Any() // get only rows which do not have joined rows from dt2
select r1;
if (diff.Count() > 0)
dtDiff = diff.CopyToDataTable();
}
catch (Exception ex)
{
}
return dtDiff;
}