Поиск с множественным вводом и между двумя датами не работает, когда текстовое поле даты пусто - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь выполнить быстрый поиск с множественным вводом, чтобы при заполнении любого из текстового поля, даже если пустое текстовое поле, данные все равно можно было извлечь.

Проблема, с которой я столкнулся, заключается в том, что, когда я пытался выполнить поиск по диапазону дат, данные не удалось найти, когда текстовое поле даты пусто. Даже когда другое текстовое поле не является нулевым.

Я также пытался найти диапазон дат, используя этот метод:

and (convert(varchar, DateIssue, 105) between @DateTo and @DateFrom  )

следующий запрос, который я использовал для поиска

SELECT * FROM [Table2]

where  (ID like '%' + @ID  + '%' or ID=@ID   )

and(Pic_Mgr like '%' + @Picmgr + '%' or Pic_Mgr=@Picmgr) 


and(DEPT like '%' + @dept + '%' or DEPT=@dept)

 and ( DateIssue between @DateTo and @DateFrom )

следующий код, который я использовал для получения значения параметра:

            cmd.Parameters.AddWithValue("@ID", txtid.Text)
            cmd.Parameters.AddWithValue("@Dept", txtIssDept.Text)


            cmd.Parameters.AddWithValue("@Picmgr", txtPICMgr.Text)
            cmd.Parameters.AddWithValue("@DateTo", txtdateto.Text)
            cmd.Parameters.AddWithValue("@DateFrom", txtdatefrm.Text)

Я попытался выполнить поиск без диапазона дат, и он работает просто отлично. Поэтому я предполагаю, что в моем запросе могут возникнуть проблемы с обработкой данных даты и времени.

Есть ли какие-либо предложения о том, как это исправить ??

1 Ответ

0 голосов
/ 23 мая 2019
SELECT * FROM [Table2]
where  (ID like '%' + @ID  + '%' or ID=@ID   )
and(Pic_Mgr like '%' + @Picmgr + '%' or Pic_Mgr=@Picmgr) 
and(DEPT like '%' + @dept + '%' or DEPT=@dept)
 and (DateIssue between
 (case when isnull(@DateTo,'') <>'' then @DateTo else DateIssue end) and
 (case when isnull(@DateFrom,'') <>'' then @DateFrom else DateIssue end))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...