Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按日期范围搜索记录&如果日期范围为空,则使用SQL_C#_Asp.net_Sql - Fatal编程技术网

C# 按日期范围搜索记录&如果日期范围为空,则使用SQL

C# 按日期范围搜索记录&如果日期范围为空,则使用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

我已经用C,asp.net创建了搜索web表单。我有搜索参数,如客户名称、日期范围从&到。我已经编写了通过上述参数进行搜索的查询。它工作正常,但当我只按客户名称而不是按日期范围搜索时,它不会显示记录。请给我一个解决方案,为空日期范围提供与“LIKE”条件下的“%”运算符相同的条件。

假设您正在将以下3个参数传递给SP

@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,是否可能?