2012-05-08 4 views
0

온라인 답변을 찾으려고했지만 DataTable을 사용하고 있는데 테이블의 열 이름을 기반으로 모든 행을 필터링하려고하지만 filterExpression이 작동하지 않는 것 같습니다. 구문이 잘못 되었음에도 불구하고 기본적으로 내가 원하는 작업입니다. ...DataTable에서 특정 열 이름의 행 반환 - C#

DataRow [] row = sqlDT.Select (ColumnName = "Foo", "ASC", DataViewRowState.CurrentRows);

고마워요.

+1

현재 어떤 코드가 있습니까? 어떤 오류 또는 문제가 있습니까? 그냥이 문법이 잘못되었다고 말하는 것이 아니라 대략적으로 우리에게 도움이되지 않습니다. S – RhysW

+0

정말 많은 코드가 없습니다. "어떻게하면이 일을 할 것인가"에 대한 질문이었습니다. DataTable이 있고 특정 열 (이름을 메서드로 전달 함)의 값을 필터링 한 다음 해당 열의 개체를 열에서 반환하려고합니다. DataTable 클래스에 대한 Select() 메서드를 체크 아웃하고/열 이름을 비교할 수 및 해당 열의 경우에만 행을 반환하는 경우 궁금 ... SELECT * FROM "ColumnName"SQL 문을 비슷합니다. – user1382476

답변

0

몇 가지 방법이 있습니다. 나는 행을 필터링하는 LINQ를 사용하는 것이 좋습니다 것입니다 :

sqlDT = sqlDT.AsEnumerable().Where(r => r.Field<string>("ColumnName") == "Foo").CopyToDataTable(); 

당신은 또한 Select 방법 또는 DefaultView.RowFilter 속성을 사용할 수 있습니다 : 당신은 그냥 필터링 할 경우

//select method 
sqlDT = sqlDT.Select("ColumnName = 'Foo'").CopyToDataTable(); 

//row filter property 
sqlDT.DefaultView.RowFilter = "ColumnName = 'Foo'"; 
sqlDT = sqlDT.DefaultView.ToTable(); 

편집

을 불필요한 열은 DefaultView.ToTable() 방법을 사용하십시오.

sqlDT = sqlDT.DefaultView.ToTable(false, "Column1", "Column2", "Column3"); 
+0

답장을 보내 주셔서 감사합니다 ... "ColumnName"을 속성으로 인식합니까? 아니면 내 테이블에서 칼럼 이름을 말하는거야? – user1382476

+0

아니요, 저는 당신의 테이블에서 칼럼의 이름을 언급하고있었습니다. 'ColumnName'을 필터링 할 컬럼으로 대체하십시오. –

+0

그래서 필자는 열을 기준으로 필터링하고 싶었 기 때문에 제대로 작동하는지 확신 할 수 없었습니다 ... ... "DataName"의 SQL 문과 비슷합니다. – user1382476

0

잘못된 순서로 입력하면됩니다. Datatable.rows (0 // 해당 개수) .item ("열 이름"); foreach를 사용하여 루프를 반복하고 목록을 만들 수 있습니다.

0

당신이

의 DataRow [] 행 = sqlDT.Select ("의 ColumnName = '"+ 푸 + "'", "ASC", DataViewRowState.CurrentRows) 같은 것을 시도해야한다;

이 작품이 당신에게 희망이됩니다.

관련 문제