Exemple #1
0
        private void ConvertKeyValueObj(KeyValueObj item)
        {
            if (item == null)
            {
                return;
            }
            if (item.IsList && _filterType != FilterType.In)
            {
                throw new Exception("In-filter type is required when a object value is a collection");
            }

            if (item.IsList && item.FieldType == FieldType.String)
            {
                List <string> objList = item.Value as List <string>;
                item.Value = objList.Select(g => g = string.Format("'{0}'", g)).ToList();
            }
        }
Exemple #2
0
        private string GetWhereItemStr(KeyValueObj item)
        {
            StringBuilder sBuilder = new StringBuilder();

            switch (_filterType)
            {
            case FilterType.And:
                sBuilder.Append(string.Format(" and {2}{0}=@{1} ", item.Key, item.Key, item.TbAsName));
                FileSqlDic(string.Format("@{0}", item.Key), item.Value);
                break;

            case FilterType.Or:
                sBuilder.Append(string.Format(" or {2}{0}=@{1} ", item.Key, item.Key, item.TbAsName));
                FileSqlDic(string.Format("@{0}", item.Key), item.Value);
                break;

            case FilterType.In:
                if (item.IsList)
                {
                    if (item.FieldType == FieldType.String)
                    {
                        sBuilder.Append(string.Format(" and {2}{0} in ({1}) ", item.Key, string.Join(",", (List <string>)item.Value), item.TbAsName));
                    }
                    else if (item.FieldType == FieldType.Int)
                    {
                        sBuilder.Append(string.Format(" and {2}{0} in ({1}) ", item.Key, string.Join(",", (List <int>)item.Value), item.TbAsName));
                    }
                }
                else
                {
                    sBuilder.Append(string.Format(" and {2}{0}=@{1} ", item.Key, item.Key, item.TbAsName));
                    FileSqlDic(string.Format("@{0}", item.Key), item.Value);
                }
                break;

            case FilterType.Like:
                sBuilder.Append(string.Format(" and {2}{0} like '%{1}%' ", item.Key, item.Value.ToString(), item.TbAsName));
                break;

            case FilterType.Neq:
                sBuilder.Append(string.Format(" and {2}{0} <> @{1} ", item.Key, item.Key, item.TbAsName));
                FileSqlDic(string.Format("@{0}", item.Key), item.Value);
                break;

            case FilterType.Between:
                if (item.FieldType == FieldType.Date)
                {
                    sBuilder.Append(string.Format(" and {2}{0} between {1} ", item.Key, string.Format("'{0}' and '{1}'", Convert.ToDateTime(item.Value).ToShortDateString(), Convert.ToDateTime(item.Value).AddDays(1).ToShortDateString()), item.TbAsName));
                }
                else
                {
                    sBuilder.Append(string.Format(" and {2}{0}=@{1} ", item.Key, item.Key, item.TbAsName));
                    FileSqlDic(string.Format("@{0}", item.Key), item.Value);
                }
                break;

            default:
                break;
            }

            return(sBuilder.ToString());
        }