C# 按日期范围搜索记录&如果日期范围为空,则使用SQL
我已经用C,asp.net创建了搜索web表单。我有搜索参数,如客户名称、日期范围从&到。我已经编写了通过上述参数进行搜索的查询。它工作正常,但当我只按客户名称而不是按日期范围搜索时,它不会显示记录。请给我一个解决方案,为空日期范围提供与“LIKE”条件下的“%”运算符相同的条件。假设您正在将以下3个参数传递给SPC# 按日期范围搜索记录&如果日期范围为空,则使用SQL,c#,asp.net,sql,C#,Asp.net,Sql,我已经用C,asp.net创建了搜索web表单。我有搜索参数,如客户名称、日期范围从&到。我已经编写了通过上述参数进行搜索的查询。它工作正常,但当我只按客户名称而不是按日期范围搜索时,它不会显示记录。请给我一个解决方案,为空日期范围提供与“LIKE”条件下的“%”运算符相同的条件。假设您正在将以下3个参数传递给SP @Input VARCHAR(100) @FromDate DATETIME @ToDate DATETIME 当您只想基于客户名称进行搜索时(在本例中),请为FromDate和T
@Input VARCHAR(100)
@FromDate DATETIME
@ToDate DATETIME
当您只想基于客户名称进行搜索时(在本例中),请为FromDate和ToDate传递NULL值,并编写如下查询
SELECT COL1,COL2,COL3....
FROM TABLET1 T1
WHERE T1.Name LIKE '%' + @Input + '%'
AND (T1.FROMDATE >= @FromDate OR @FromDate IS NULL)
AND (T1.TODATE <= @ToDate OR @ToDate IS NULL)
案例1:FromDate未在UI中指定,因此@FromDate将为NULL,条件T1.FromDate>=@FromDate或**@FromDate为NULL**将返回true
案例2:UI中未指定ToDate,因此@ToDate将为NULL,条件ND T1.ToDate将发布sql查询。您正在使用动态sql吗?请选择custname、fromdate、,todate from custleavetable,其中custname(如“%+txtcustname.text+%”和fromdate介于“+txtfrom.text+”和“+txtto.text+”之间,todate介于“+txtfrom.text+”和“+txtto.text+”之间,如果我没有输入搜索的日期范围&仅当我按名称搜索时,它不会显示任何具有from-date和to-date的记录,此查询不起作用。我认为您没有正确检查where子句。它肯定会返回匹配的记录。我已经更新了我的答案,请检查。如果没有SP,这可以正常工作,我必须在SP中提供条件,但我正在从多个表中提取数据,因此如何将它们放在一个存储过程中此SP仅属于一个表您可以使用SQL JOIN语句组合多个表中的数据。我认为您应该更详细地了解SQL连接和查询。上面的查询只是一个使用单个表的示例查询,可以根据您的要求使用联接轻松地进行扩展。我使用联接只是从多个表中获取数据,但我必须使用SP,是否可能?