شما میتونید دیتاتیبل هاتون تبدیل به لیست کنید و از LINQ کمک بگیرید
var dt1 = table1.AsEnumerable().ToList();
var dt2 = table2.AsEnumerable().ToList();
سپس با یک Select کدهاتون تبدیل به آرایه کنید و از توابع LINQ بهره بیرید جستجویی بزیند با این شزط که :کدهایی در جدول 1 که در جدول 2 وجود ندارند
var getId = dt2.Select(s => s["KOD"]).ToArray();
var dt3 = dt1.Where(x => !getId.Contains(x["KOD"])).ToList();
یا بدینصورت هم میتونید
var table3 = table1.Copy();
table3.AcceptChanges();
table3.Merge(table2);
var dt5 = from row in table3.AsEnumerable()
where row.RowState != DataRowState.Modified
select row;
میتونید از تابع تفاضل هم استفاده کنید
var dt = table1.AsEnumerable().Except(table2.AsEnumerable() , DataRowComparer.Default).ToList();