У меня есть форма C# для поиска в таблице с различными параметрами, которые пользователь может фильтровать процедуру поиска.Необязательные параметры в where where
У меня есть 4 текстовых поля, например txt1, txt2, txt3 и txt4.
Пользователь может заполнить каждое текстовое поле для поиска, например, txt1 или txt1 и txt2 или txt1 и txt и txt4, либо оставить их пустыми и использовать всю комбинацию этих текстовых полей. Итак, как я могу написать одну процедуру выбора, чтобы охватить все эти параметры.
Я написал эту процедуру, но это не поможет:
CREATE proc sp_searchZ
@minprice bigint=null,@maxprice bigint=null,@minarea int=null,@maxarea int=null,@location nvarchar(50)=null,@kind nvarchar(50)=null
as
SELECT *
FROM Landtbl
WHERE ((@minprice is null and @maxpriceis null) or ([Price] between @minprice and @maxprice))
and
((@minarea is null and @maxarea is null) or ([area] between @minarea and @maxarea))
and ((@location is null)or([location][email protected]))
and ((@kind is null) or ([kind][email protected]))
Что значит «это не поможет»? Я думаю, что ваша основная логика звучит, вы получаете нулевые записи, когда ожидаете чего-то? –
'@maxpriceis null' - это опечатка в вашей процедуре магазина или только в этом вопросе? –
Извините, я понял ... но забыл свой код ... что я могу сделать, когда пользователь динамически фильтрует и заполняет некоторые текстовые поля? –