使用具有动态值的多个参数进行搜索
本文关键字:参数 搜索 动态 | 更新日期: 2023-09-27 18:31:07
我正在使用 4 个参数进行搜索,没有必填字段参数是
- 城市
- 婚姻状况
- 性
- 组
根据选择,我收到这样的SQL查询
select * from UserTable
where Gender='Male' AND City='' AND MaritalStatus='Single' AND Groups =''
它返回 0 行,因为参数City=''
AND Groups =''
与条件不匹配。
有没有办法在不检查多个组合中的 null 的情况下实现这一点。我正在使用MSSQL2012
作为我的数据库和Asp.Net C#
。
我的方法如下
private void GetSearchResults(string city, string MaritalStatus, string Gender, string Groups)
{
var qry="select * from UserTable
where Gender='"+Gender+"' AND City='"+city+"' AND MaritalStatus='"+MaritalStatus+"' AND Groups ='"+Groups+"'";
}
我的选择组='' 意味着我不想对组进行任何过滤
select * from UserTable where Gender='Male' AND City IS NULL AND MaritalStatus='Single' AND Groups IS NULL
假设你有以下参数
@Gender = 'Male',
@City = '',
@MaritalStatus = 'Married'
@Groups = ''
你的 SQL 看起来像。
select * from UserTable
where
(Gender = @Gender OR ISNULL (@Gender, '') = '')
AND (City = @City OR ISNULL (@City, '') = '')
AND (MaritalStatus = @MaritalStatus OR ISNULL (@MaritalStatus, '') = '')
AND (Groups = @Groups OR ISNULL (@Groups, '') = '')