2014-12-20 3 views
2

여러 열이있는 데이터 테이블이 있습니다. 난 내가 할 수있는 열을 필터링 할 :데이터 테이블의 열 필터링

이제
newDatableName= OldDt.ToTable(false,"col1","col2"); 

내가 즉 dyanamically 열 이름을 지정하는 문자열에있는 모든 열 이름을 넣을 후 수행, 가정 :

string colnames= "col1,col2"; 
newDatableName= OldDt.ToTable(false,colnames); 

I을 위의 시도했지만 작동하지 않습니다. 나는 시도했다 :

그러나 열 이름의 문자열을 하나의 열로 간주하고 그러한 열이 없다는 오류를 준다.

도움을 주시면 감사하겠습니다.

답변

2

DataView.ToTable 메서드를 사용하고 있다고 가정합니다. 따라서 OldDT는 DataTable이 아닌 DataView입니다. 이 경우
당신은 당신의 열 이름의 배열을 전달해야

string[] colnames = new string[] {"col1", "col2"}; 
newDatableName= OldDt.ToTable(false,colnames); 
+0

감사 톤 스티브. 날 구해 줬어. 건배! –

1

새로운 배열이 시도 정의 마음에 들지 않는 경우는, 스티브의 답변을 사용할 수 있습니다

string colnames="col1,col2" 
newDatableName=OldDt.ToTable(colnames.Split(','); 
+0

@ JacksonLopes 어쨌든 최종 목표는 명확하지 않습니다. 왜 그 문자열을 하나의 문자열로 사용 하시겠습니까? – niceman

+0

고맙습니다. 당신의 대답은 제게 많은 도움을주었습니다. 그러나 스티브가 나에게 길을 보여준 이래로 나는 그의 대답을 표시해야했습니다. 엄청 고마워. 건배! –

+0

.glad 문제 없음 – niceman

0
DataTable.DefaultView.ToTable(bool, Params string[] ColumnNames); 

을 위 메서드는 기존 DataView의 행을 기반으로 새 DataTable을 만들고 반환합니다.

이 함수에 두 개의 매개 변수를 전달해야합니다. true 인 경우 반환 된 DataTable에는 모든 열에 고유 한 값이있는 행이 포함됩니다. 기본값은 false입니다. 반환 된 DataTable에 포함될 열 이름의 목록이 들어있는 문자열 배열입니다. DataTable에는이 배열에 나타나는 순서대로 지정된 열이 포함됩니다. 예를 들어 :

DataTable NewTable = dt.DefaultView.ToTable(false, "StartDate", "FinishDate", "ItemName", "AssigneeNames", "ProjectName", "PercentComplete"); 
관련 문제