我正在尝试使用sql和asp.net进行搜索。我创建了一个Gridview,它使用以下sqldatasource sql语句检索数据。
SELECT customer.fisrtname,
customer.lastname,
customer.initials,
customer.title,
address.street,
area.area,
suburb.suburbname
FROM address
INNER JOIN area
ON address.areaid = area.areaid
INNER JOIN areasuburb
ON area.areaid = areasuburb.areaid
INNER JOIN customeraddress
ON address.addressid = customeraddress.addressid
INNER JOIN customer
ON customeraddress.customerid = customer.customerid
INNER JOIN suburb
ON areasuburb.suburbid = suburb.suburbid
WHERE ( customer.lastname LIKE '%' + @Lastname + '%' )
OR ( address.street LIKE '%' + @Street + '%' )
我遇到的问题是,如果用户没有在姓氏字段中输入任何值,那么即使存在有效数据,该语句也不会返回任何数据。
请对此的任何帮助将不胜感激。
这是执行可选参数的一种方法:
WHERE (@Lastname is NULL or customer.lastname LIKE '%' + @Lastname + '%' ) or
(@Street is NULL or address.street LIKE '%' + @Street + '%' )
它只是在参数为时忽略条件NULL
(或者您可以使用= ''
,取决于您如何表示没有输入参数的事实)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句