示例#1
0
 public string Parse(ParseSqlContext context)
 {
     if (string.IsNullOrEmpty(this.nameNick))
     {
         return(this.Column.Parse(context));
     }
     return($"{this.Column.Parse(context)} as {this.nameNick}");
 }
示例#2
0
 /// <summary>
 /// Between和NOT Between的情况
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 private string ToSQLWithBetween(ParseSqlContext context)
 {
     System.Data.Common.DbParameter parameter = context.CreateParameter(this.column.name, value);
     context.DbParameters.Add(parameter);
     System.Data.Common.DbParameter parameter2 = context.CreateParameter(this.column.name, value2);
     context.DbParameters.Add(parameter2);
     return(string.Format("{0} {3} {1} AND {2}", this.column.Parse(context), parameter.ParameterName, parameter2.ParameterName, this.opt.ToSql()));
 }
示例#3
0
 public override string Parse(ParseSqlContext context)
 {
     if (this.opt == LogicOpt.And)
     {
         return(string.Format("{0} {1} {2}", this.left.Parse(context), AND, this.right.Parse(context)));
     }
     return(string.Format("({0} {1} {2})", this.left.Parse(context), OR, this.right.Parse(context)));
 }
示例#4
0
        /// <summary>
        /// IN和NOT IN的情况
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string ToSQLWithIN(ParseSqlContext context)
        {
            var lstParameter = lstValue.Select(x => context.CreateParameter(this.column.name, x)).ToList();

            context.DbParameters.AddRange(lstParameter);
            var lstParameterName = lstParameter.Select(x => x.ParameterName).ToList();

            return(string.Format("{0} {1} ({2})", this.column.Parse(context), this.opt.ToSql(), string.Join(",", lstParameterName)));
        }
示例#5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override string Parse(ParseSqlContext context)
        {
            switch (this.opt)
            {
            case WhereOpt.IN:
                return(this.ToSQLWithIN(context));

            case ~WhereOpt.IN:
                return(this.ToSQLWithIN(context));

            case WhereOpt.BT:
                return(this.ToSQLWithBetween(context));

            case ~WhereOpt.BT:
                return(this.ToSQLWithBetween(context));

            case WhereOpt.NoParameter:
                return(this.ToSQLWithNoParameter(context));

            case WhereOpt.NULL:
                return(this.ToSQLWithNULL(context));

            case ~WhereOpt.NULL:
                return(this.ToSQLWithNULL(context));

            case WhereOpt.Exists:
                return(this.ToSQLWithExists(context));

            case ~WhereOpt.Exists:
                return(this.ToSQLWithExists(context));

            default:
                break;
            }
            DbParameter parameter = context.CreateParameter(this.column.name, value);
            string      strwhere  = string.Format("{0} {1} {2}", this.column.Parse(context), this.opt.ToSql(), parameter.ParameterName); //表别名.列1=参数1

            context.DbParameters.Add(parameter);
            return(strwhere);
        }
示例#6
0
        private string ToSQLWithNULL(ParseSqlContext context)
        {
            string strwhere = string.Format("{0} {1}", this.column.Parse(context), this.opt.ToSql());

            return(strwhere);
        }
示例#7
0
 private string ToSQLWithNoParameter(ParseSqlContext context)
 {
     throw new NotImplementedException();
 }
示例#8
0
        public override string Parse(ParseSqlContext context)
        {
            var str = $"{this.left.Parse(context)} = { this.right.Parse(context)}";

            return(str);
        }
示例#9
0
        public string Parse(ParseSqlContext context)
        {
            var str = $"{joption.ToSql()} {this.rightTable.Name} AS {this.rightTable.NameNick} ON {this.jw.Parse(context)}";

            return(str);
        }
示例#10
0
        public string Parse(ParseSqlContext context)
        {
            var str = $"{this.col.Parse(context)} {opt.ToSql()}";

            return(str);
        }
示例#11
0
 public abstract string Parse(ParseSqlContext context);