我需要此功能用於事務表。我的數據表看起來像這樣。比較2個數據表和選擇行不在第2個表中使用2個條件
RecordsInDatabase-表
a_code | b_code
AB | 001
AB | 002
AC | 001
RecordsInTextFile-表
a_code | b_code
AB | 002
AC | 005
AC | 009
我需要用兩個ID,a_code
和b_code
比較。 因此,如果我運行LINQ代碼(或其他),datable將包含數據庫中的記錄,但不包含在文本文件中。
RecordsNotInTextFile-表
a_code | b_code
AB | 001
AC | 001
我已經有一個LINQ代碼,但它僅使用一個ID比較。我是LINQ的新手,所以請和我一起裸照。
DataTable affixesInDatabase = affixDAO.SelectAllAffix();
IEnumerable<string> affixesNotInTextFile = affixesInDatabase.AsEnumerable().Select(r => r.Field<string>("affix_code"))
.Except(affixesInTextFile.AsEnumerable().Select(r => r.Field<string>("affix_code")));
if (affixesNotInTextFile.Any())
{
DataTable affixesToBeDeleted = (from row in affixesInDatabase.AsEnumerable()
join id in affixesNotInTextFile
on row.Field<string>("affix_code") equals id
select row).CopyToDataTable();
foreach (DataRow dr in affixesToBeDeleted.Rows)
{
affixDAO.DeleteAffix(dr[0].ToString());
}
}
return "Affix data successfully edited.";
謝謝!
如何?我對LINQ相當陌生,並且也從SO獲得了我的代碼。 –
@JeanoErmitaño編輯提供更多指導。 –
感謝您提供鏈接。非常感激。當我自己解決問題時,我會回覆你。謝謝! –