예제 #1
0
        /// <summary>
        /// 根据model信息生成 SELECT [member1],[member2]... FROM [TableName]
        /// </summary>
        /// <param name="model">载有生成信息的Model</param>
        /// <returns>查询字符串结果</returns>
        public string Select(SqlModel model)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("SELECT ");
            foreach (var item in model.Members)
            {
                if (model.ColFunction != null)
                {
                    string sourceName = model.ColFunction(item);
                    if (sourceName != item)
                    {
                        sql.Append(model.Left);
                        sql.Append(model.ColFunction(item)).Append(" AS ");
                        sql.Append(model.Right);
                    }
                }

                sql.Append(model.Left);
                sql.Append(item);
                sql.Append(model.Right);
                sql.Append(",");
            }
            sql.Length -= 1;
            sql.Append(" FROM ");
            sql.Append(model.Left);
            sql.Append(model.TableName);
            sql.Append(model.Right);
            return(sql.ToString());
        }
예제 #2
0
        public string Condition(SqlModel model, IEnumerable <string> conditions)
        {
            StringBuilder sql = new StringBuilder(" WHERE ");

            foreach (var item in conditions)
            {
                sql.Append(model.Left);
                if (model.ColFunction != null)
                {
                    sql.Append(model.ColFunction(item));
                }
                else
                {
                    sql.Append(item);
                }
                sql.Append(model.Right);

                sql.Append("=@");
                if (model.FilterFunction != null)
                {
                    sql.Append(model.FilterFunction(item));
                }
                else
                {
                    sql.Append(item);
                }
                sql.Append(" AND ");
            }
            if (sql.Length > 0)
            {
                sql.Length -= 5;
            }
            return(sql.ToString());
        }
예제 #3
0
        /// <summary>
        /// 根据model信息生成 [condition1]=@condition,[condition2]=@condition2.....
        /// </summary>
        /// <param name="model">载有委托处理的Model</param>
        /// <param name="conditions">需要匹配的成员集合</param>
        /// <returns>条件字符串结果</returns>
        public string Condition(SqlModel model, params string[] conditions)
        {
            if (conditions == null)
            {
                return(string.Empty);
            }
            StringBuilder sql = new StringBuilder(" WHERE ");

            for (int i = 0; i < conditions.Length; i += 1)
            {
                sql.Append(model.Left);
                if (model.ColFunction != null)
                {
                    sql.Append(model.ColFunction(conditions[i]));
                }
                else
                {
                    sql.Append(conditions[i]);
                }
                sql.Append(model.Right);

                sql.Append("=@");
                if (model.FilterFunction != null)
                {
                    sql.Append(model.FilterFunction(conditions[i]));
                }
                else
                {
                    sql.Append(conditions[i]);
                }
                sql.Append(" AND ");
            }
            sql.Length -= 5;
            return(sql.ToString());
        }