예제 #1
0
        public static string HttpGetWhere(NameValueCollection request, Dictionary <string, SqlDataType> dic, bool withWhere = true)
        {
            List <WhereColumn> listWhere = new List <WhereColumn>();

            foreach (var item in dic)
            {
                string str = request[item.Key];
                if (!string.IsNullOrEmpty(request[item.Key]))
                {
                    WhereColumn @where = new WhereColumn();
                    @where.ColumnName     = item.Key;
                    @where.ColumnValue    = request[item.Key];
                    @where.ColumnDataType = (Rdp.Core.Data.SqlDataType)item.Value;
                    listWhere.Add(@where);
                }
            }
            return(GetWhere(listWhere, withWhere));
        }
예제 #2
0
        /// <summary>
        /// 返回Where类的条件字符串
        /// </summary>
        /// <param name="column"></param>
        /// <returns></returns>
        /// <remarks></remarks>
        private static StringBuilder AppendWhere(WhereColumn column)
        {
            StringBuilder reString = new StringBuilder();

            reString.Append(column.ColumnName);
            string @where = null;

            switch (column.ColumnDataType)
            {
            case SqlDataType.IntBetween:
                string[] str = column.ColumnValue.ToString().Split(',');
                @where = " BETWEEN" + str[0] + " AND " + str[1];
                break;

            case SqlDataType.IntEqual:
                @where = "=" + column.ColumnValue;
                break;

            case SqlDataType.IntEqualGreater:
                @where = ">=" + column.ColumnValue;
                break;

            case SqlDataType.IntEqualLess:
                @where = "<=" + column.ColumnValue;
                break;

            case SqlDataType.IntFrom:
                StringBuilder sb1 = new StringBuilder();
                sb1.Append(reString.ToString().Substring(0, reString.Length - 5));
                sb1.Append(">=");
                sb1.Append(column.ColumnValue);
                return(sb1);

            case SqlDataType.IntGreater:
                @where = ">" + column.ColumnValue;
                break;

            case SqlDataType.IntIn:
                @where = " IN (" + column.ColumnValue + ")";
                break;

            case SqlDataType.IntLess:
                @where = "<" + column.ColumnValue;
                break;

            case SqlDataType.IntNotEqual:
                @where = "<>" + column.ColumnValue;
                break;

            case SqlDataType.IntTo:
                StringBuilder sb2 = new StringBuilder();
                sb2.Append(reString.ToString().Substring(0, reString.Length - 3));
                sb2.Append("<=");
                sb2.Append(column.ColumnValue);
                return(sb2);

            case SqlDataType.NVarcharBetween:
                string[] str1 = column.ColumnValue.ToString().Split(',');
                @where = " BETWEEN N'" + str1[0] + "' AND N'" + str1[1] + "'";
                break;

            case SqlDataType.NVarcharEqual:
                @where = "= N'" + column.ColumnValue + "'";
                break;

            case SqlDataType.NVarcharEqualGreater:
                @where = ">= N'" + column.ColumnValue + "'";
                break;

            case SqlDataType.NVarcharEqualLess:
                @where = "<= N'" + column.ColumnValue + "'";
                break;

            case SqlDataType.NVarcharFrom:
                StringBuilder sb = new StringBuilder();
                sb.Append(reString.ToString().Substring(0, reString.Length - 5));
                sb.Append(">= N'");
                sb.Append(column.ColumnValue);
                sb.Append("'");
                return(sb);

            case SqlDataType.NVarcharGreater:
                @where = "> N'" + column.ColumnValue + "'";
                break;

            case SqlDataType.NVarcharIn:
                @where = " IN (N'" + column.ColumnValue.ToString().Replace(",", "',N'") + "')";
                break;

            case SqlDataType.NVarcharLess:
                @where = "< N'" + column.ColumnValue + "'";
                break;

            case SqlDataType.NVarcharLike:
                @where = " LIKE N'%" + column.ColumnValue + "%'";
                break;

            case SqlDataType.NVarcharRightLike:
                @where = " LIKE N'" + column.ColumnValue + "%'";
                break;

            case SqlDataType.NVarcharUpperLike:
                @where = " LIKE UPPER(N'%" + column.ColumnValue + "%')";
                break;

            case SqlDataType.NVarcharNotEqual:
                @where = "<> N'" + column.ColumnValue + "'";
                break;

            case SqlDataType.NVarcharTo:
                StringBuilder sb4 = new StringBuilder();
                sb4.Append(reString.ToString().Substring(0, reString.Length - 3));
                sb4.Append("<= N'");
                sb4.Append(column.ColumnValue);
                sb4.Append("'");
                return(sb4);

            case SqlDataType.VarcharBetween:
                string[] str2 = column.ColumnValue.ToString().Split(',');
                @where = " BETWEEN '" + str2[0] + "' AND '" + str2[1] + "'";
                break;

            case SqlDataType.VarcharEqual:
                @where = "= '" + column.ColumnValue + "'";
                break;

            case SqlDataType.VarcharEqualGreater:
                @where = ">= '" + column.ColumnValue + "'";
                break;

            case SqlDataType.VarcharEqualLess:
                @where = "<= '" + column.ColumnValue + "'";
                break;

            case SqlDataType.VarcharFrom:
                StringBuilder sb6 = new StringBuilder();
                sb6.Append(reString.ToString().Substring(0, reString.Length - 5));
                sb6.Append(">= '");
                sb6.Append(column.ColumnValue);
                sb6.Append("'");
                return(sb6);

            case SqlDataType.VarcharGreater:
                @where = "> '" + column.ColumnValue + "'";
                break;

            case SqlDataType.VarcharIn:
                @where = " IN ('" + column.ColumnValue.ToString().Replace(",", "','") + "')";
                break;

            case SqlDataType.VarcharLess:
                @where = "< '" + column.ColumnValue + "'";
                break;

            case SqlDataType.VarcharLike:
                @where = " LIKE '%" + column.ColumnValue + "%'";
                break;

            case SqlDataType.VarcharRightLike:
                @where = " LIKE '" + column.ColumnValue + "%'";
                break;

            case SqlDataType.VarcharNotEqual:
                @where = "<> '" + column.ColumnValue + "'";
                break;

            case SqlDataType.VarcharTo:
                StringBuilder sb7 = new StringBuilder();
                sb7.Append(reString.ToString().Substring(0, reString.Length - 3));
                try
                {
                    System.Convert.ToDateTime(column.ColumnValue);
                    sb7.Append("< DATEADD(DAY,1,'");
                    sb7.Append(column.ColumnValue);
                    sb7.Append("')");
                }
                catch (Exception)
                {
                    sb7.Append("<= '");
                    sb7.Append(column.ColumnValue);
                    sb7.Append("'");
                }
                return(sb7);
            }
            return(reString.Append(@where));
        }