예제 #1
0
        /// <summary>
        /// 根据model信息生成 INSERT INTO [TableName] ([member1],[member2]...) VALUES (@member1,@member2...)
        /// </summary>
        /// <param name="model">载有生成信息的Model</param>
        /// <returns>插入字符串的结果</returns>
        public string Insert(SqlModel parameter_model)
        {
            var model = parameter_model;

            if (!parameter_model.PrimaryManually)
            {
                model = parameter_model.ModelWithoutPrimary();
                model.FilterFunction = parameter_model.FilterFunction;
            }

            StringBuilder pre_str = new StringBuilder(20);
            StringBuilder aft_str = new StringBuilder(20);

            pre_str.Append(" (");
            aft_str.Append('(');
            foreach (var item in model.Members)
            {
                pre_str.Append(model.Left);

                if (model.ColFunction != null)
                {
                    pre_str.Append(model.ColFunction(item));
                }
                else
                {
                    pre_str.Append(item);
                }

                pre_str.Append(model.Right);
                pre_str.Append(',');

                aft_str.Append('@');
                if (model.FilterFunction != null)
                {
                    aft_str.Append(model.FilterFunction(item));
                }
                else
                {
                    aft_str.Append(item);
                }
                aft_str.Append(',');
            }
            pre_str.Length -= 1;
            aft_str.Length -= 1;
            pre_str.Append(')');
            aft_str.Append(')');

            StringBuilder sql = new StringBuilder(40);

            sql.Append("INSERT INTO ");
            sql.Append(model.Left);
            sql.Append(model.TableName);
            sql.Append(model.Right);
            sql.Append(pre_str);
            sql.Append("VALUES");
            sql.Append(aft_str);
            return(sql.ToString());
        }
예제 #2
0
        /// <summary>
        /// 根据model信息生成 UPDATE [TableName] SET([member1]=@member1,[member2]...=@member2...)
        /// </summary>
        /// <param name="model">载有生成信息的Model</param>
        /// <returns>更新字符串结果</returns>
        public string Update(SqlModel model)
        {
            var temp_model = model.ModelWithoutPrimary();

            StringBuilder update = new StringBuilder(40);

            foreach (var item in temp_model.Members)
            {
                update.Append(temp_model.Left);
                if (temp_model.ColFunction != null)
                {
                    update.Append(temp_model.ColFunction(item));
                }
                else
                {
                    update.Append(item);
                }
                update.Append(temp_model.Right);

                update.Append("=@");
                if (temp_model.FilterFunction != null)
                {
                    update.Append(temp_model.FilterFunction(item));
                }
                else
                {
                    update.Append(item);
                }

                update.Append(',');
            }

            StringBuilder sql = new StringBuilder(60);

            if (update.Length > 0)
            {
                update.Length -= 1;
                sql.Append("UPDATE ");
                sql.Append(temp_model.Left);
                sql.Append(temp_model.TableName);
                sql.Append(temp_model.Right);
                sql.Append(" SET ");
                sql.Append(update);
                //sql.Append(" WHERE ");
            }

            return(sql.ToString());
        }