用户选择一些from
和to
日期以及SqlBuilder
我正在创建要运行数据库记录的查询字符串。因此,生成查询的部分内容可能如下所示:
WHERE ( t1.From_Date >= @from_date AND t1.To_Date <= @to_date )
但由于某些原因我不知道,如果我去SQL Server并看到其中一些行NULL
或from
列中有to
行。所以它导致我的查询不返回那些行。
有没有办法在代码的C#端解决这个问题?
答案 0 :(得分:1)
如果您想要包含这些行,只需调整WHERE子句:
WHERE t1.From_Date IS NULL OR
t1.To_Date IS NULL OR
( t1.From_Date >= @from_date AND t1.To_Date <= @to_date )
答案 1 :(得分:0)
我会修复查询以执行以下操作:
where (isnull(t1.From_Date, @from_date) >= @from_date
and isnull(t1.To_Date, @to_date) <= @to_date)
变异:
where (t1.From_Date is null or t1.From_Date >= @from_date)
and (t1.To_Date is null or t1.To_Date <= @to_date)
答案 2 :(得分:0)
最好先修复数据,否则只需执行'select *'并在搜索记录时,实例化一个加载每个属性的类,如果prop为null则使其成为任何值.save类对象哈希表并使用你喜欢的记录集。请记住,这只是在你需要以某种方式过滤或呈现数据的时候。如果你只是想省略记录,请使用下面的查询。