我有两个绑定到数据源的组合框,以便在ASP.NET中创建搜索网页。两个组合框都绑定到数据库表。数据源根据组合框的值确定其SQL SELECT语句,因此结果将被过滤。但是,我想要包括用户不想在某些组合中设置值并希望检索有关此组合框的所有数据库记录的情况。我在两个组合中都包含静态条目(例如),但是如何编写数据源,因此当用户选择时,不会应用WHERE语句? 我发现这个答案有点用处,但是存在安全问题,并不是那么简单。 Changing SqlDataSource.SelectCommand at runtime breaks pagination
提前致谢
答案 0 :(得分:0)
假设当用户不选择任何内容时组合框中的值是-1,你可以像这样修改你的sql:
SELECT *
FROM TABLE
WHERE ((COLUMN_1 = @PARAM_1) OR @PARAM_1 = -1)
AND ((COLUMN_2 = @PARAM_2) OR @PARAM_2 = -1)
如果您将-1作为两个参数的值传递,则查询将返回表中的所有记录