@dynamicCondition高级查询sql配置
dynamicCondition高级查询sql配置
public class DynamicConditionHelper
{
public static string GetQuerySqlStrs(string jsonData)
{
string sqlstr = string.Empty;
var obj = JsonConvert.DeserializeObject<dynamic>(jsonData);
for (int i = 0; i < obj.Count; i++)
{
string logicalOperator = obj[i].logicalOperator;//或且
string conditionFieldVal = obj[i].conditionFieldVal;//字段名
string conditionOptionVal = obj[i].conditionOptionVal;//条件
string conditionValueVal = obj[i].conditionValueVal.value;//值
string conditionValueLeftVal = obj[i].conditionValueLeftVal.value;
string conditionValueRightVal = obj[i].conditionValueRightVal.value;
switch (conditionOptionVal)
{
case "equal":
conditionOptionVal = " = ";
conditionValueVal = "'" + conditionValueVal + "'"; break;
case "unequal":
conditionOptionVal = " <> ";
conditionValueVal = "'" + conditionValueVal + "'"; break;
case "like":
conditionOptionVal = " like ";
conditionValueVal = "'%" + conditionValueVal + "%'"; break;
case "start":
conditionOptionVal = " like ";
conditionValueVal = "'" + conditionValueVal + "%'"; break;
case "end":
conditionOptionVal = " like ";
conditionValueVal = "'%" + conditionValueVal + "'"; break;
case "greater_than":
conditionOptionVal = " > ";
conditionValueVal = "'" + conditionValueVal + "'"; break;
case "less_than":
conditionOptionVal = " < ";
conditionValueVal = "'" + conditionValueVal + "'"; break;
case "notempty":
conditionOptionVal = " is not null";
conditionValueVal = string.Empty; break;
case "empty":
conditionOptionVal = " is null";
conditionValueVal = string.Empty; break;
case "between":
conditionOptionVal = " between '" + conditionValueLeftVal + "' and '" + conditionValueRightVal + "'";
conditionValueVal = string.Empty; break;
default:
break;
}
string qurey = String.Format(" {0} {1} {2} {3} ", logicalOperator, conditionFieldVal, conditionOptionVal, conditionValueVal);
sqlstr += qurey;
}
return sqlstr;
}
}