Удалить повторяющиеся строки в файле базы данных MS Access в C # - PullRequest
0 голосов
/ 08 ноября 2011

Мне нужен простой способ удалить дубликаты строк в файле базы данных MS Access.

Пример:

[realtimedata]
 SecName | SecSym | Number
---------+--------+--------
 Mike    | 123    | 245
 Mike    | 123    | 245

1 Ответ

0 голосов
/ 08 ноября 2011

1) Откройте DataTable или Recordset, который выбирает столбец (столбцы) уникального идентификатора таблицы плюс столбцы, которые вы используете для идентификации повторяющихся строк; оператор выбора должен включать сортировку предложений по порядку в столбцах с идентификатором дубликатов. В вашем примере: 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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...