Пример #1
0
 /// <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);
        }
Пример #3
0
        /// <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);
        }