Пример #1
0
        /// <summary>
        /// 编辑表描述
        /// </summary>
        /// <param name="context"></param>
        public void EditTableDescribe(HttpContext context)
        {
            var name     = context.Request["tableName"];
            var describe = context.Request["tableDescribe"];
            var dbName   = context.Request["dbName"];

            // todo 因为无法判断当前是否已有描述 出此下策 目前是先执行更新出现异常再尝试添加
            try
            {
                // 执行 更新
                DbClient.Excute($@"USE {dbName}
                                  EXEC sp_updateextendedproperty @name = N'MS_Description',
                                                                 @value = N'{describe}',
                                                                 @level0type = N'user',
                                                                 @level0name = N'dbo',
                                                                 @level1type = N'table',
                                                                 @level1name = N'{name}';");
            }
            catch (Exception)
            {
                // 执行 添加
                DbClient.Excute($@"USE {dbName}
                                  EXEC sp_addextendedproperty @name = N'MS_Description',
                                                                 @value = N'{describe}',
                                                                 @level0type = N'user',
                                                                 @level0name = N'dbo',
                                                                 @level1type = N'table',
                                                                 @level1name = N'{name}';");
            }
        }
Пример #2
0
        /// <summary>
        /// 更新一条数据 (需要依赖主键)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int Update(T model)
        {
            if (IsNullOrEmpty(IdentityKey))
            {
                throw new Exception(GetDescription(ErrorEnum.E1000));
            }
            SqlString = new StringBuilder();
            SqlString.Append($" UPDATE {_tableName} SET ");
            var properties = model.GetType().GetProperties();
            var para       = new DynamicParameters();
            var keyValue   = new object();

            foreach (var t in properties)
            {
                if (IdentityKey != t.Name && PrimaryKey != t.Name)
                {
                    SqlString.Append($" {t.Name} = @{t.Name},");
                    para.Add("@" + t.Name, t.GetValue(model, null));
                }
                else
                {
                    if (t.Name == PrimaryKey)
                    {
                        keyValue = t.GetValue(model, null);
                    }
                }
            }
            SqlString = RemoveEndNumber(SqlString, 1);
            SqlString.Append($" WHERE {PrimaryKey} = @{PrimaryKey}_Key ");
            para.Add($"@{PrimaryKey}_Key", keyValue);
            return(DbClient.Excute(SqlString.ToString(), para));
        }
Пример #3
0
 /// <summary>
 /// 依据主键删除一条数据
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public int DeleteByPrimaryKey(object id)
 {
     if (IsNullOrEmpty(PrimaryKey))
     {
         throw new Exception(GetDescription(ErrorEnum.E1000));
     }
     SqlString = new StringBuilder();
     SqlString.Append($"DELETE {_tableName} WHERE {PrimaryKey} = @key ");
     return(DbClient.Excute(SqlString.ToString(), new { key = id }));
 }
Пример #4
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="where">where条件 以AND开头</param>
 /// <returns></returns>
 public int Delete(string where)
 {
     if (IsNullOrEmpty(where))
     {
         throw new Exception(GetDescription(ErrorEnum.E1001));
     }
     SqlString = new StringBuilder();
     SqlString.Append($"DELETE {_tableName} WHERE 1=1 {where} ");
     return(DbClient.Excute(SqlString.ToString()));
 }
Пример #5
0
        /// <summary>
        /// 批量删除 (必须:AddWhere)
        /// </summary>
        /// <returns></returns>
        public int Delete()
        {
            if (!_whereList.Any() && !_whereStr.Any())
            {
                throw new Exception(GetDescription(ErrorEnum.E1001));
            }

            SqlString = new StringBuilder();
            var sq = GetWhereString();

            SqlString.Append($"DELETE {_tableName} WHERE 1=1 {sq.SqlStr}");
            var para = new DynamicParameters();

            para.AddDynamicParams(sq.Parameter);
            return(DbClient.Excute(SqlString.ToString(), para));
        }
Пример #6
0
        /// <summary>
        /// 执行更新(必须AddUpdate 必须AddWhere)
        /// </summary>
        /// <returns></returns>
        public int Update()
        {
            SqlString = new StringBuilder();
            var top = Top > 0 ? $"TOP({Top})" : "";

            SqlString.Append($"UPDATE {top} {_tableName} SET ");
            var para = new DynamicParameters();
            var sp   = GetUpdateString();

            if (IsNullOrEmpty(sp.SqlStr))
            {
                throw new Exception(GetDescription(ErrorEnum.E1002));
            }
            SqlString.Append($"{sp.SqlStr}");
            para.AddDynamicParams(sp.Parameter);
            sp = GetWhereString();
            if (IsNullOrEmpty(sp.SqlStr))
            {
                throw new Exception(GetDescription(ErrorEnum.E1001));
            }
            SqlString.Append(" WHERE 1=1 " + sp.SqlStr);
            para.AddDynamicParams(sp.Parameter);
            return(DbClient.Excute(SqlString.ToString(), para));
        }