我想要一种简单的方法来删除MS Access数据库文件中的重复行。
示例:
[realtimedata] SecName | SecSym | Number ---------+--------+-------- Mike | 123 | 245 Mike | 123 | 245
答案 0 :(得分:0)
1)打开DataTable或Recordset,选择表的唯一标识符列以及用于标识重复行的列; select语句必须包含对副本标识列进行排序的order by子句。在您的示例中:ORDER BY SecName, SecSym, Number
2)遍历记录,读取标识重复行的列的值。
3)如果有任何重复的行,它们将彼此相邻,因为结果已按这些列排序。因此,如果任何行具有与前一行相同的值,则它是重复的,应该删除。
伪代码段:
string prevSecName = null;
int prevSecSym = 0;
int prevNumber = 0;
const int idIndex = 0;
const int nameIndex = 1;
const int symIndex = 2;
const int numberIndex = 3;
var idsToDelete = new List<SomeType>();
foreach (var row in rows)
{
if (prevSecName != null && prevSecName = row[nameIndex] && prevSecSym = row[symIndex] && prevNumber = row[numberIndex])
idsToDelete.Add(row[idIndex]);
prevSecName = row[nameIndex];
prevSecSym = row[symIndex];
prevNumber = row[numberIndex];
}