【发布时间】:2013-02-08 11:22:51
【问题描述】:
我正在形成如下的字符串表达式。
string Condition = " it.person_id = " + personId.ToString();
if (lstPersonFields != null)
{
foreach (var field in lstPersonFields )
{
string fieldCondition = " And it." + field.FieldName.ToString();
if (field.FieldCondition == "Contains")
{
fieldCondition = fieldCondition + " Like '%" + field.FieldValue.ToString() + "%'";
}
else if (field.FieldCondition == "Equals")
{
fieldCondition = fieldCondition + " = '" + field.FieldValue.ToString()+"'";
}
Condition = Condition + fieldCondition;
}
}
var personSearch = FullPersonlst.Where(Condition).ToList();
以上代码在类似搜索中对日期时间值以外的其他值正常工作,并为类似日期时间字段抛出错误
Like arguments must be of string type
如何搜索日期时间字段?
【问题讨论】:
-
您是否尝试将日期时间转换为字符串..?
-
我认为在这种情况下不可能,因为我们没有字段名称。
-
不要连接输入。重复:不要连接输入。这是非常非常非常危险的代码...
-
@User_MVC 因为它非常容易受到 SQL 注入的影响。如果您不熟悉 SQL 注入,请立即查找。这是最普遍的非法获取数据、破坏数据的方式。如果您经常编写上述代码,那么您的系统根本就坏了,需要立即引起注意。
标签: c# asp.net-mvc linq lambda