Esempio n. 1
0
        public FindQuery(string targetdb = null)
        {
            excutParBag = new ExcutParBag_Select();
            this.SetTargetDb(targetdb.ToSafeString());
            ((ExcutParBag_Select)excutParBag).excutEnum = ExcutEnum.Select;

            ((ExcutParBag_Select)excutParBag).selectColumns = new List <string>();
            ((ExcutParBag_Select)excutParBag).orders        = new List <OrderPair>();
            ((ExcutParBag_Select)excutParBag).SetType(typeof(T));
        }
        //构建检索
        protected override void SelectCommandText()
        {
            base.SelectCommandText();
            ExcutParBag_Select bagPar    = (ExcutParBag_Select)this.excutParBag;
            StringBuilder      selectSQL = new StringBuilder();   //语句
            StringBuilder      whereSQL  = new StringBuilder();   //条件语句
            StringBuilder      order     = new StringBuilder(""); //条件语句

            if (bagPar.orders != null && bagPar.orders.Count > 0)
            {
                order.Append(" ORDER BY ");
                List <string> orderlist = new List <string>();
                bagPar.orders.ForEach(p =>
                {
                    orderlist.Add(p.orderName + " " + p.orderBy.ToString());
                });
                order.Append(string.Join(",", orderlist));
            }
            selectSQL.Append("SELECT ");

            if (bagPar.selectColumns != null && bagPar.selectColumns.Count() > 0)
            {
                selectSQL.Append(string.Join(",", bagPar.selectColumns));
            }
            else
            {
                selectSQL.Append(" * ");
            }
            selectSQL.Append(" FROM  " + bagPar.tableName);
            var where = this.SetWhere(bagPar.condition);
            if (!string.IsNullOrEmpty(where))
            {
                whereSQL.AppendFormat(" WHERE ");
                whereSQL.AppendFormat(where);
            }
            if (bagPar.topSize.HasValue)
            {
                this.CommandText = string.Format("{0}{1}{2}{3}", selectSQL.ToString(), whereSQL.ToString(), order.ToString(), " LIMIT " + bagPar.topSize.Value + " ");
            }
            else
            {
                this.CommandText = string.Format("{0}{1}{2}", selectSQL.ToString(), whereSQL.ToString(), order.ToString());
            }
        }