基于填写的1个或多个字段进行查询

时间:2017-07-28 13:51:52

标签: c# asp.net search

我确信这很容易,但我画的是空白。我有5个文本框用于搜索。如果填充了TextBox1,则填充GridView1,GridView2的TextBox2等。然后,如果只填充TextBox1或TextBox2,我还有4个GridView可以填充,但如果两者都填充则填充。另一个GridView将根据填充的1个或3个TextBox来填充。

是否存在除Switch或500以外的其他方式如何编写基于填写的1到3个搜索字段填充GridView的代码?

2 个答案:

答案 0 :(得分:0)

在这种情况下,我通常会定义一个带有多个输入参数的特定搜索查询,它会检查每个参数是否有值。

例如

-- This part only if you use ODBC connection, it you use SQL Client connection you don't need it
declare @CompanyID int
declare @CustomerNumber int
declare @LocationID int
declare @AnotherFilter varchar(100)

SELECT @CompanyID=?, @CustomerNumber=?, @LocationID=?, @AnotherFilter=?

-- End ODBC specific

SELECT *
FROM Your_table
WHERE
(COMPANY_ID=@CompanyID OR @CompanyID=0)
AND
(CUSTOMER_NUMBER=@CustomerNumber OR @CustomerNumber=0)
AND 
(LOCATION_ID=@LocationID OR @LocationID=0)
AND
(ANOTHER_FIELD=@AnotherFilter OR @AnotherFilter='')

您可以将它放在GridView(s)

的SQLDataSource或ObjectDataSource中

答案 1 :(得分:0)

与LINQ一起使用。从基本数据集开始,然后根据下一个TextBox是否为空将其过滤。