update dapper查询

This commit is contained in:
2021-05-31 14:54:26 +08:00
parent 48d8adb9ba
commit d5bee93c24
2 changed files with 34 additions and 24 deletions

View File

@@ -24,33 +24,20 @@ namespace Ewide.Core
/// 查询运算符
/// </summary>
public string Type { get; set; }
private string _QueryTypeStr;
public QueryTypeEnum QueryType
{
get
{
switch (_QueryTypeStr)
return Type switch
{
case "=":
case "equal":
return QueryTypeEnum.Equal;
case "<":
case "lessthan":
return QueryTypeEnum.LessThan;
case "<=":
case "lessthanorequal":
return QueryTypeEnum.LessThanOrEqual;
case ">":
case "greaterthan":
return QueryTypeEnum.GreaterThan;
case ">=":
case "greaterthanorequal":
return QueryTypeEnum.GreaterThanOrEqual;
default:
return QueryTypeEnum.Like;
}
"=" or "equal" => QueryTypeEnum.Equal,
"<" or "lessthan" => QueryTypeEnum.LessThan,
"<=" or "lessthanorequal" => QueryTypeEnum.LessThanOrEqual,
">" or "greaterthan" => QueryTypeEnum.GreaterThan,
">=" or "greaterthanorequal" => QueryTypeEnum.GreaterThanOrEqual,
_ => QueryTypeEnum.Like,
};
}
}
@@ -60,7 +47,6 @@ namespace Ewide.Core
public SearchInfo()
{
Value = new List<string>();
_QueryTypeStr = Type;
}
}
}

View File

@@ -45,7 +45,9 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
List<string> whereSqls = new List<string>();
foreach (var elem in searchInfoList.Where(m => m != null))
{
whereSqls.Add(GetWhereSqlBuild(elem));
var r = GetWhereSqlBuild(elem);
if (String.IsNullOrWhiteSpace(r)) continue;
whereSqls.Add(r);
}
StringBuilder result = new StringBuilder();
@@ -64,10 +66,12 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
List<string> whereList = new List<string>();
foreach (var elem in searchInfo.Value)
{
if (String.IsNullOrWhiteSpace(elem)) continue;
var parameterName = "@" + searchInfo.Field + Guid.NewGuid().ToString("N");
//AddParameter(parameterName, elem);
sqlParameters.Add(parameterName, QueryTypeEnum.Like == searchInfo.QueryType ? "%" + elem + "%" : elem);
whereList.Add(String.Format(sqlT, searchInfo.Field, searchInfo.Type, parameterName));
whereList.Add(String.Format(sqlT, searchInfo.Field, GetSearchOperatorStr(searchInfo.QueryType), parameterName));
}
if (whereList.Count == 0) return String.Empty;
var resultT = "({0})";
@@ -75,6 +79,26 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
return result;
}
private string GetSearchOperatorStr(QueryTypeEnum searchOperator)
{
switch (searchOperator)
{
case QueryTypeEnum.GreaterThan:
return ">";
case QueryTypeEnum.GreaterThanOrEqual:
return ">=";
case QueryTypeEnum.LessThan:
return "<";
case QueryTypeEnum.LessThanOrEqual:
return "<=";
case QueryTypeEnum.Like:
return " LIKE ";
default:
return "=";
}
}
private void AddParameter(string key, object value)
{
//var parameter = _SqlParameters.ParameterNames.FirstOrDefault(m => m == key);