使用多个文本框搜索数据库Asp.net

时间:2018-06-26 15:01:49

标签: c# sql-server stored-procedures

我有一个存储过程,可以使用文本框从数据库中提取数据。但是,我添加了另一个文本框,该文本框也为他们提供了另一个提取相同数据的选项。用户可以使用ID号或地址进行搜索。但是说我在id文本框中输入数据,而将地址文本框留空,这将拉动所有记录。不是基于输入的ID号的记录;但是,如果我将id文本框保留为空,然后输入到地址文本框,则会返回所需的一条记录。

存储过程

select id, name, age, address, telephone where 
  WHERE id= @id
  OR ISNULL(@id, '') = '' and address= @address
  OR ISNULL(@address, '') = ''

1 个答案:

答案 0 :(得分:0)

您需要括号:

SELECT id, name, age, address, telephone 
WHERE ( ISNULL(@id, '') = '' AND ISNULL(@address, '') = '' )
  OR  ( ISNULL(@id, '') = '' AND address = @address )
  OR  ( ISNULL(@address, '') = '' AND id = @id )
  OR  ( id = @id AND address = @address )