我有一个GridView,它有多个搜索选项。
Call Date
Start_Time (between two time values)
Call_Time
AgentID
Phone
他们想要的是所有这些选项都可以通过一个搜索按钮进行搜索。
我遇到的问题是如何将查询构建为动态的,因此如果他们只搜索一个选项,它将按此搜索,如果他们按上述三个搜索它仍将提供准确的结果。
到目前为止,这是查询:
SELECT *, 'file://///server/folder/' + replace(call_date, '/', '') + '/'
+ qa_status + '.vox' as url FROM [JM_NSC_Recordings] WHERE ([areacode] + [phone] = @phone)
Phone = [areacode] + [phone] // @phone
Start Time = between [start_time] and [start_time] @starttime
Call Time = [call_time] // @calltime
AgentID = [tsr] // @agentid
Call Date = [call_date] // @calldate
数据库中的所有这些字段都是VARCHAR
答案 0 :(得分:0)
我使用StringBuilder进行相同类型的高级搜索,其中有多个参数。
StringBuilder stmt=new StringBuilder();
stmt.AppendLine("select * from table where ");
if(phone not blank)
stmt.AppendLine("phone=89754654 and ");
else
stmt.AppendLine("true and ");
if(agentid not blank)
stmt.AppendLine("agentid=89754654 and");
else
stmt.AppendLine("true and ");
else
stmt.AppendLine("true ");
等尝试它会起作用