PDA

View Full Version : مقایسه و حذف رکوردهای توسط Linq



sh
پنج شنبه 27 آبان 1389, 01:42 صبح
سلام
دوستان دو تا dattable داریم که فیلد Pcode بین اونها مشترک هست

tbl1 شامل (pcode,Rate)
tbl2شامل (pcode,name,fami,isactivel)

مسئله از این قراره که باید تمام افراد در جدول دوم که کد آنها (Pcode) در جدول اول قرار نداره از جدول دوم حذف بشن و اونهائی که باقی می مونن فیلد isactive اونا true بشه

چون با Linq آشنائی زیادی ندارم دوستان در این مورد اگر میتونن راهنمایی کنند. چیزی که به ذهنم رسید اینه که ابتدا باید یه آرایه از صرفا فیلد Pcode جدول اول توسط Linq تشکیل بشه بعد مجدد با Linq در جدول دوم گفت هر کس که Pcode آن در فلان آرایه (که از جدول اول اخذ شده) وجود ندارد حذف شود و بقیه بروز رسانی بشن. منتها در عمل موفق به پیاده سازی نشدم

با تشکر

sh
شنبه 29 آبان 1389, 22:20 عصر
خب گفتم شاید راه حلش بدرد بقیه هم بخوره :



Dim rownotfound As DataRow() = (From rows2 As DataRow In HouseClubDataSet.Person.Rows.OfType(Of DataRow)()
Where (Aggregate rows1 As DataRow In HouseClubDataSet.PointsLimit.Rows.OfType(Of DataRow)()
Where CInt(rows1.Item("pcode")) = CInt(rows2("pcode")) Into Count()) = 0).ToArray
For Each row As DataRow In rownotfound
HouseClubDataSet.Person.Rows.Remove(row)
Next