2017-03-18 3 views
0

나는 내가이 설정 기준을 충족하는 경우 어떤 이유로 아래의 코드는 결과 그 후 첫 번째 열에 대한 정확한 결과를 제공, 확인하기 위해 한 번에 하나 개의 컬럼을 조회 할 DataTable을이 잘못된 것입니다. 이 방법에 C# DataTable.Select

private bool BusinessRulesOne(DataTable dt, DataColumn dc) 
    { 
     bool isSatisfied = false; 
     DataRow[] checkColumn = dt.Select(dc.ColumnName + " " + "in (1,2,3,)"); 

     if (checkColumn.Length != 0) 
     { 
      isSatisfied = true; 
     } 
     return isSatisfied; 
    } 

는 임 나는 현재에 집중하고있어 내가 쿼리있어 DataTable을하고 DataColumn에 전달. 여기서 일어날 필요가있는 것은이 열의 값이 1,2,3 값으로 구성되어 있는지 확인하고자하는 것입니다. 그렇다면 true를 반환합니다. 하나의 (1의) 해당 열의 3 개 이상의 (3) 예 true를 돌려주는 경우 경우
private bool BusinessRulesTwo(DataTable dt, DataColumn dc) 
    { 
     bool isSatisfied = false; 
     var checkColumn = dt.Select(dc.ColumnName + " " + " = 1"); 

     if (checkColumn.Count() > 3) 
     { 
      isSatisfied = true; 
     } 
     return isSatisfied; 
    } 

은 다른 규칙에 나는 확인하고 있습니다.

모든 제안은 환영합니다. Linq와 연락을주고 받지만 인생을 더 편리하게한다면 배우고 기꺼이 탐구 할 것입니다. 싱글 = 동일

+0

대신 시도하십시오. 열 이름은 모두 이스케이프 시퀀스없이 사용할 준비가 되었습니까? (공백 없음, 특수 문자 없음 ...). 정확히 어떤 조합의 데이터가 올바른/잘못된 결과를 제공하는지에 대한 작은 예를 들려 줄 수 있습니까? 값은 실제로 숫자 형식이 아닌 숫자 형식입니까? – grek40

답변

0

는 할당되지 평등 검사입니다. 두 번 같음 == 1 또는 = 1 대신

+0

이것이'DataTable.Select()'메서드에 있다는 것을 기억하십시오. 따라서 문자열이나 컨텍스트가 SQL 쿼리의 형식이어야하므로'='를 사용했습니다. –

관련 문제