/// <summary> /// 作为条件的构造函数 /// </summary> /// <param name="and"></param> /// <param name="not"></param> private TableFilter(EOperateMode operateMode, string filterName, object filterValue, bool not) { this.OperateMode = operateMode; this.FilterName = filterName; this.FilterValue = filterValue; this.Not = not; }
private string GetOperateFilter(EOperateMode operateMode, string parmsName, string stringPlus) { var result = string.Empty; var operatorStr = DictOperateMode[operateMode]; if (operateMode == EOperateMode.IsNull || operateMode == EOperateMode.IsNotNull) { result = operatorStr; } else if (operateMode == EOperateMode.In) { result = operatorStr + "(" + parmsName + ")"; } else { result = operatorStr + " " + parmsName; } return(" " + result); }
/// <summary> /// 添加过滤条件 /// </summary> /// <param name="operateMode">过滤操作符</param> /// <param name="filterValue">过滤字段,如果值为空,抛出异常</param> /// <param name="filterValue">过滤字段的值,如果值为空,则不加入此过滤信息 例外:ISNULL操作符</param> /// <param name="not">是否取反</param> /// <returns>返回this</returns> public TableFilter AddFilter(EOperateMode operateMode, string filterName, object filterValue, bool not = false) { if (operateMode == EOperateMode.IsNull) { filterValue = "0";//占位符。因为解析filter的时候filtervalue为空会跳过这个条件 } if (string.IsNullOrWhiteSpace(filterName)) { throw new Exception("过滤条件字段名称能为空, 无法添加"); } if (operateMode != EOperateMode.IsNull && (filterValue == null || string.IsNullOrWhiteSpace(filterValue.ToString()))) { return(this); } var xmlFilter = new TableFilter(operateMode, filterName, filterValue, not); this.LastAddedFilter = xmlFilter; this.ChildFilters.Add(xmlFilter); return(this); }