2012-11-20 8 views
2

가능한 중복은 : C#을 사용하여 데이터 테이블에서 중복 항목을 제거하는 방법은 무엇입니까?


How to select distinct values from datatable?

다음은 내가 현재 일하고 있어요 내 코드입니다. 내 데이터 집합에서 중복 된 필드를 없애려고합니다. 나는 이것을하는 올바른 방법이 If 문에 의한 것이라고 믿는다. 아무도 도와 줄 수 있습니까? (그리고 세 매개 변수 오버로드 된 버전)

부울 PARAM 별개의 true의 경우, 반환 된 시스템 :

+0

데이터베이스 필드에 UNIQUE를 할당 할 수 있습니다. – Basith

답변

2

는 두 개의 매개 변수와 함께 ToTable이라는 DataView를 방법이있다 : 이것은 내가 지금까지 가지고있는 코드입니다 .Data.DataTable에는 모든 열에 고유 한 값이있는 행이 들어 있습니다. 기본값은 false입니다.

문자열 배열 param columnNames 반환되는 System.Data.DataTable에 포함될 열 이름의 목록이 들어있는 문자열 배열입니다. System.Data.DataTable에는이 배열에 나타나는 순서대로 지정된 열이 들어 있습니다.

// create a dv from the source dt 
DataView dv = new DataView(dt); 
// set the output columns array of the destination dt 
string[] strColumns = {"NodeID", "Title", "Url"}; 
// true = yes, i need distinct values. 
dt = dv.ToTable(true, strColumns); 

참조 : Remove Duplicate Records in a DataTable the Easy Way

0

내가 고유성을 필요로 할 때마다 내가 대신 다른 구조의 HashSet의를 사용합니다. 그래서 짧은 대답은 : 나는 그렇지 않습니다.

Hashset에는 고유 한 것으로 판단 할 수있는 좋은 기능이 있습니다. 적절한 생성자를 사용하십시오.

또 다른 한가지는 - 데이터베이스에 액세스하기 위해 DataSets를 사용하지 않는 경우 - 사용하지 말고 강하게 입력 된 버전을 사용하는 것입니다. 이것은 당연히 그렇게해야하는 좋은 이유가있는 경우에는 적용되지 않습니다. 이는 단지 일반적인 규칙 일뿐입니다.

관련 문제