2013-12-11 3 views
0

У меня есть 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

Я использовал 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 "); 

и так далее попробовать это будет работать

+0

Был tryign, чтобы не делать много работы в коде позади. Был найден SQL-решение 'WHERE (@phone имеет значение null или [isacode] + [phone] = @phone)' –

Смежные вопросы