2016-06-04 5 views
0

두 개의 서로 다른 열의 조건으로 데이터를 필터링하는 LINQ 쿼리를 만들려고합니다. SelectedOption = Something 이 내가 작동하지 않는, 무엇을 때 LINQ 쿼리에 대한 여러 기준

나는 특정 문자열 값이 Section_Data 열, 즉, 2016/5/15 사이 2016/6/16에서 충족되는 경우에만 열에서 두 날짜 사이에 데이터를 얻기 위해 노력하고 있어요.

DataGridOne.DataContext = sql.Time_TBLs.Where(item => 
       item.Time_Data_1 < new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 15) && 
       item.Time_Data_1 > new DateTime(DateTime.Now.Year, DateTime.Now.Month, 16) && 
       item.Section_Data == SelectedOption); 

아래의 쿼리는 두 날짜간에 데이터를 가져 오는 단일 기준에 대해 작동합니다. 하지만 그 날짜 사이의 모든 데이터 비트를 선택합니다.

Column1.DataContext = sql.Time_TBLs.Where(item => 
        item.Time_Data_1 < new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 15) && 
        item.Time_Data_1 > new DateTime(DateTime.Now.Year, DateTime.Now.Month, 16) 

검색어에 두 번째 기준을 어떻게 추가합니까?

편집은 : 나는 특정 오류/당신이 문제를 어떤을 받고 &

+1

* "이것은 작동하지 않습니다."*. '작동하지 않는다'는 문제의 설명이 결코 충분하지 않습니다. 어떤 식으로 쿼리가 작동하지 않습니까? 네가 원치 않는 것은 무엇으로 돌아 왔느냐? – har07

+0

@ har07, 즉, 아무것도 반환하지 않습니다. 즉, 작동하지 않는다 – KyloRen

+1

'2016/05/15'과 '2016/06/16' 사이의 두 날짜 사이를 필터링하려고하지만 조건이 당신이'2016/05/15'보다 적고 '2016/05/06/16'. DataGridOne.DataContext = sql.Time_TBLs.Where (item => item.Time_Data_1> 새 DateTime (DateTime.Now.Year, DateTime.Now.Month - 1, 15) && item.Time_Data_1

답변

1

조건문이 잘못되었습니다. 2016/05/152016/06/16 사이의 두 날짜를 필터링하고 싶지만 2016/05/15보다 작고 2016/06/16보다 큰 값을 원합니다.

코드는 다음과 같아야합니다.

DataGridOne.DataContext = sql.Time_TBLs.Where(item => 
item.Time_Data_1 > new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 15) 
&& item.Time_Data_1 < new DateTime(DateTime.Now.Year, DateTime.Now.Month, 16) 
&& item.Section_Data == SelectedOption); 
1

을 넣을 때 오타, & &에 가정?

지금까지 코드는 모두 BODMAS와 bitwise & 연산자라고 할 수 있습니다. &에 대한 자세한 내용은 Usage & versus &&

한편으로이 코드가 도움이됩니까?

DataGridOne.DataContext = sql.Time_TBLs.Where(item => 
(item.Time_Data_1 < new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 15) && 
item.Time_Data_1 > new DateTime(DateTime.Now.Year, DateTime.Now.Month, 16)) && 
item.Section_Data == SelectedOption); 

추 신 : 순수 DateTime으로 작업 할 때 날짜 대신 16 개 대신 17 개를 사용하는 것이 더 쉽습니다. 모든 시간은 기본적으로 00 : 00 : 0000이므로 16/06/2016 07 : 05 : 0000과 같은 데이터가 있으면 16의 DateTime.Day를 확인하는 쿼리에서 다시 가져올 수 없습니다.

+0

아니요, 작동하지 않습니다. 여분의'&'그것은'&&'이되어야했습니다. – KyloRen

+0

포스트 스크립트 노트를 확인하십시오.그렇지 않으면 예제 데이터를 게시하십시오. 코드가 간다면 잘못 보이지 않습니다. – touchofevil

+0

아무런 데이터도 반환되지 않으므로 작동하지 않습니다. – KyloRen