2011-11-08 3 views
0

MS Access 데이터베이스 파일에서 중복 행을 쉽게 제거 할 수 있습니다.C#의 MS Access 데이터베이스 파일에서 중복 행 제거

예 :

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

이 크게 당신이 "중복"을 고려 무엇에 따라 달라 - 중복 데이터 항목의 예를 보일 수 있는가? – bobbymcr

+0

그것은 행을 집계합니까? 또는 뭔가 다른 ' –

+0

테이블/데이터가 현재 어떻게 보이는지 보여주고 삭제할 행을 보여줄 수 있습니까? –

답변

0

1) 테이블의 고유 식별자 컬럼 (들) 플러스 중복 행을 식별하는 데 사용하는 열을 선택하는 DataTable을하거나 레코드를 엽니 다; 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]; 
}