نوشته شده توسط
دلتنگ اسمان
با سلام
پارسال یه برنامه نوشتم و یه جدولی(به نام :general) که طراحی کردم الان حاوی اطلاعات است. تقریبا 24000 رکورد (دیتابیس:sql server Enterprise)
الان که می خوام برنامه رو یه تغییراتی بدم می بینم که این جدول حاوی رکوردهای تکراری است و اصلان نیازی نبوده که اینطوری طراحی کنم .
این جدول حاوی id , کدملی و تاریخ مراجعه و ... می باشد. حالا میخوام برای هر کدملی فقط یه رکورد نگه دارم و بقیه موارد رو حذف کنم. (فقط idو تاریخ متفاوته).
اگه بشه اولین مراجعه رو حفظ کنم و بقیه رو حذف کنم خوبه.(هر چند فرق زیادی نمیکنه)
سلام خدمت شما دوست عزیز وقتت بخیر ، با توجه به اینکه تعداد رکوردهای زیادی داری من بهت HAshTable رو پیشنهاد میکنم این متدی که برات نوشتم با استفاده از HashTable رکوردهای تکراری تون رو حذف میکنه
public DataTable hazv_Record_tekrari(DataTable DT, string colName)
{
Hashtable hashTable = new Hashtable();
ArrayList duplicateList = new ArrayList();
foreach (DataRow drow in DT.Rows)
{
if (hashTable.Contains(drow[colName]))
duplicateList.Add(drow);
else
hashTable.Add(drow[colName], string.Empty);
}
foreach (DataRow dRow in duplicateList)
DT.Rows.Remove(dRow);
return DT;
}
اگه باز درباره Hashtable ها متوجه نشدی یا کلا از این بخش برات سوالی پیش اومد بگو تا جواب بدم .
امیدوارم پیرو و مموفق باشید
از کدنویسی لذت ببرید