Esempio n. 1
0
        /// <summary>
        /// 执行操作
        /// </summary>
        /// <param name="commandParam"></param>
        /// <returns></returns>
        public CommandResult Execute(CommandParam commandParam)
        {
            var dbHelper = commandParam.DbHelper;

            IniUiParam(commandParam);
            BaseCommandParam baseCommandParam = new BaseCommandParam(commandParam);
            CommandResult    result           = new CommandResult();

            MyBatis.DataMapper.Session.ISession session = null;
            IDbConnection conn = null;

            try
            {
                session = dbHelper.SessionFactory.OpenSession();
                session.OpenConnection();
                conn = dbHelper.CurrentSession.Connection;
                baseCommandParam.DbConnection    = conn;
                baseCommandParam.ParameterPrefix = dbHelper.SessionFactory.DataSource.DbProvider.ParameterPrefix;
                result = BaseExecute(baseCommandParam);
            }
            catch (Exception ex)
            {
                log.Error("执行" + this.GetType().FullName + "错误=" + ex.ToString());
                result.iResult   = -1;
                result.Exception = ex;
                return(result);
            }
            finally
            {
                conn.Close();
                session.Close();
                session.Dispose();
            }
            return(result);
        }
Esempio n. 2
0
        protected override CommandResult BaseExecute(BaseCommandParam commandParam)
        {
            CommandResult result = new CommandResult();

            #region 系统数据
            var biz      = commandParam.UiBiz;
            var uiHelper = commandParam.UiHelper;
            var uiParam  = commandParam.UiParam;
            var sysParam = commandParam.SysParam;
            var conn     = commandParam.DbConnection;
            var prefix   = commandParam.ParameterPrefix;
            #endregion

            #region 初始化操作
            string     tableName = uiHelper.UiData.Crud.TableName;
            IDbCommand command   = conn.CreateCommand();
            command.Parameters.Clear();
            StringBuilder sResult = new StringBuilder();
            string        br      = "<br>";
            #endregion

            #region 验证必选项为空
            foreach (ParamField parField in uiHelper.Update.Panel.ParamFields)
            {
                bool   isNull  = parField.Nullable;
                string key     = parField.FieldName;
                string caption = uiHelper.UiData.GetCaption(parField.Caption, parField.FieldName).Value;
                if (!isNull)
                {
                    object value = null;
                    uiParam.TryGetValue(key, out value);
                    if (value == null || string.IsNullOrWhiteSpace(value.ToString()))
                    {
                        sResult.Append(caption).Append("为空,请添加!").Append(br).ToString();
                    }
                }
            }
            result.sResult = sResult.ToString();
            if (result.sResult != null && (!string.IsNullOrWhiteSpace(result.sResult)))
            {
                result.iResult = -1;
                result.sResult = result.sResult.Remove(result.sResult.Length - 1, 1);
                return(result);
            }
            #endregion

            #region 检验唯一项
            foreach (Unique unique in uiHelper.UiData.Crud.Uniques)
            {
                command.Parameters.Clear();
                StringBuilder sqlstr = new StringBuilder("select count(*) from " + tableName + " where 1=1");
                foreach (string field in unique.FieldList)
                {
                    string key = field.Trim();
                    sResult.Append(uiHelper.UiData.GetCaption(string.Empty, field).Value).Append(" ");
                    string dbkey = prefix + key;
                    object value = null;
                    uiParam.TryGetValue(key, out value);
                    if (value != null)
                    {
                        IDbDataParameter dbparam = command.CreateParameter();
                        dbparam.ParameterName = dbkey;
                        dbparam.Value         = value;
                        command.Parameters.Add(dbparam);
                        sqlstr.Append(" and ").Append(key).Append(" = ").Append(dbkey);
                    }
                }
                #region 主键

                if (string.IsNullOrWhiteSpace(sysParam.Primarykey.Key) ||
                    sysParam.Primarykey.Value == null ||
                    string.IsNullOrWhiteSpace(sysParam.Primarykey.Value.ToString()))
                {
                    result.sResult = "没有主键信息";
                    result.iResult = -1;
                    return(result);
                }
                else
                {
                    string           key     = sysParam.Primarykey.Key.Trim();
                    string           dbkey   = prefix + key;
                    object           value   = sysParam.Primarykey.Value;
                    IDbDataParameter dbparam = command.CreateParameter();
                    dbparam.ParameterName = dbkey;
                    dbparam.Value         = value;
                    command.Parameters.Add(dbparam);
                    sqlstr.Append(" and ").Append(key).Append("").Append("<>").Append(dbkey);
                }
                #endregion
                command.CommandText = sqlstr.ToString();
                command.CommandType = CommandType.Text;
                int obj = Convert.ToInt32(command.ExecuteScalar());
                if (obj > 0)
                {
                    result.iResult = -1;
                    result.sResult = sResult.Append(" 值重复,数据添加失败!").ToString();
                    return(result);
                }
            }
            #endregion
            return(result);
        }
Esempio n. 3
0
        protected override CommandResult BaseExecute(BaseCommandParam commandParam)
        {
            CommandResult result = new CommandResult();

            #region 系统数据
            var biz      = commandParam.UiBiz;
            var uiHelper = commandParam.UiHelper;
            var uiParam  = commandParam.UiParam;
            var sysParam = commandParam.SysParam;
            var conn     = commandParam.DbConnection;
            var prefix   = commandParam.ParameterPrefix;
            #endregion

            #region 初始化操作
            string     tableName = uiHelper.UiData.Crud.TableName;
            IDbCommand command   = conn.CreateCommand();
            command.Parameters.Clear();
            StringBuilder sqlsb = new StringBuilder();
            #endregion

            #region 操作数据整理
            #region 逻辑删除
            if (!string.IsNullOrWhiteSpace(sysParam.DeleteFlag.Key))
            {
                sqlsb.Append("update " + tableName + " set ");
                sqlsb.Append(sysParam.DeleteFlag.Key).Append(" = 1 ");
                #region 用户信息
                string key   = commandParam.UiBiz.UserField;
                object value = null;
                if (!string.IsNullOrWhiteSpace(key))
                {
                    string dbkey = prefix + key;
                    if (value != null)
                    {
                        sqlsb.Append(" , ");
                        sqlsb.Append("").Append(key).Append(" = ").Append(dbkey);
                        IDbDataParameter dbparam = command.CreateParameter();
                        dbparam.ParameterName = dbkey;
                        dbparam.Value         = value;
                        command.Parameters.Add(dbparam);
                    }
                }
                #endregion
                #region 时间信息
                key = commandParam.UiBiz.TimeField;
                if (!string.IsNullOrWhiteSpace(uiHelper.Delete.TimeField))
                {
                    value = DateTime.Now;
                    string dbkey = prefix + key;
                    if (value != null)
                    {
                        sqlsb.Append(" , ");
                        sqlsb.Append("").Append(key).Append(" = ").Append(dbkey);
                        IDbDataParameter dbparam = command.CreateParameter();
                        dbparam.ParameterName = dbkey;
                        dbparam.Value         = value;
                        command.Parameters.Add(dbparam);
                    }
                }
                #endregion
            }
            #endregion
            #region 物理删除
            else
            {
                sqlsb.Append("delete from " + tableName + " ");
            }
            if (true)
            {
                string key   = sysParam.Primarykey.Key;
                object value = sysParam.Primarykey.Value;
                string dbkey = prefix + key;

                sqlsb.Append(" where ");
                sqlsb.Append("").Append(key).Append(" = ").Append(dbkey);
                IDbDataParameter dbparam = command.CreateParameter();
                dbparam.ParameterName = dbkey;
                dbparam.Value         = value;
                command.Parameters.Add(dbparam);
            }
            #endregion
            #endregion

            #region 执行操作
            command.CommandText = sqlsb.ToString();
            command.CommandType = CommandType.Text;
            IDbCommandLog(command);
            int obj = Convert.ToInt32(command.ExecuteScalar());
            if (obj > 0)
            {
                result.iResult = -1;
                return(result);
            }
            #endregion

            return(result);
        }
Esempio n. 4
0
        /// <summary>
        /// 基础执行
        /// </summary>
        /// <param name="commandParam"></param>
        /// <returns></returns>
        protected override CommandResult BaseExecute(BaseCommandParam commandParam)
        {
            CommandResult Result = new CommandResult();

            return(Result);
        }
Esempio n. 5
0
 /// <summary>
 /// 基本执行操作
 /// </summary>
 /// <param name="commandParam"></param>
 /// <returns></returns>
 protected abstract CommandResult BaseExecute(BaseCommandParam commandParam);
Esempio n. 6
0
        protected override CommandResult BaseExecute(BaseCommandParam commandParam)
        {
            CommandResult result = new CommandResult();

            sqlKeys = new List <string>();
            #region 系统数据
            var biz      = commandParam.UiBiz;
            var uiHelper = commandParam.UiHelper;
            var uiParam  = commandParam.UiParam;
            var sysParam = commandParam.SysParam;
            var conn     = commandParam.DbConnection;
            var prefix   = commandParam.ParameterPrefix;
            #endregion

            #region 初始化操作
            string     tableName = uiHelper.UiData.Crud.TableName;
            IDbCommand command   = conn.CreateCommand();
            command.Parameters.Clear();
            StringBuilder sqlsb = new StringBuilder("update " + tableName + " set ");
            #endregion

            #region 操作数据整理
            if (keyNotInSql(sysParam.DeleteFlag.Key))
            {
                string key   = sysParam.DeleteFlag.Key;
                object value = sysParam.DeleteFlag.Value;
                addDataParameter(sqlsb, command, key, prefix, value);
            }
            else
            {
                foreach (ParamField field in uiHelper.Update.Panel.ParamFields)
                {
                    string datasource = string.Empty;
                    if (!string.IsNullOrWhiteSpace(field.Datasource))
                    {
                        datasource = field.Datasource.Trim();
                    }
                    string key   = field.FieldName.Trim();
                    string dbkey = prefix + key;
                    object value = null;
                    if (!uiParam.TryGetValue(key, out value))
                    {
                        uiParam.TryGetValue(datasource, out value);
                    }
                    addDataParameter(sqlsb, command, key, prefix, value);
                }
            }

            #region 用户信息
            if (keyNotInSql(commandParam.UiBiz.UserField))
            {
                string key   = commandParam.UiBiz.UserField;
                object value = sysParam.UserId.Value;
                addDataParameter(sqlsb, command, key, prefix, value);
            }
            #endregion

            #region 时间信息
            if (keyNotInSql(commandParam.UiBiz.TimeField))
            {
                string key   = commandParam.UiBiz.TimeField;
                object value = DateTime.Now;
                addDataParameter(sqlsb, command, key, prefix, value);
            }
            #endregion

            #region DataValues
            foreach (var dvalue in commandParam.UiBiz.DataValues)
            {
                string key   = dvalue.FieldName;
                object value = null;
                if ((keyNotInSql(dvalue.FieldName)) &&
                    commandParam.UiParam.TryGetValue(key, out value))
                {
                    addDataParameter(sqlsb, command, key, prefix, value);
                }
            }
            #endregion

            #region where Primarykey=@value
            if (sqlsb.ToString().Trim().EndsWith(","))
            {
                string sqlstr = sqlsb.ToString().Trim();
                sqlsb.Clear();
                sqlsb.Append(sqlstr.Remove(sqlstr.Length - 1));
            }
            else
            {
                result.sResult = "没有需要修改的信息";
                result.iResult = -1;
                return(result);
            }
            if (string.IsNullOrWhiteSpace(sysParam.Primarykey.Key) ||
                sysParam.Primarykey.Value == null ||
                string.IsNullOrWhiteSpace(sysParam.Primarykey.Value.ToString()))
            {
                result.sResult = "没有主键信息";
                result.iResult = -1;
                return(result);
            }
            else
            {
                string           key     = sysParam.Primarykey.Key.Trim();
                string           dbkey   = prefix + key;
                object           value   = sysParam.Primarykey.Value;
                IDbDataParameter dbparam = command.CreateParameter();
                dbparam.ParameterName = dbkey;
                dbparam.Value         = value;
                command.Parameters.Add(dbparam);
                sqlsb.Append(" where ").Append("").Append(key).Append("");
                sqlsb.Append(" = ").Append(dbkey);
            }
            #endregion
            #endregion

            #region 执行操作
            command.CommandText = sqlsb.ToString();
            command.CommandType = CommandType.Text;
            IDbCommandLog(command);
            int obj = Convert.ToInt32(command.ExecuteScalar());
            if (obj > 0)
            {
                result.iResult = -1;
                return(result);
            }
            #endregion

            return(result);
        }
Esempio n. 7
0
        protected override CommandResult BaseExecute(BaseCommandParam commandParam)
        {
            CommandResult result = new CommandResult();

            sqlKeys = new List <string>();
            #region 系统数据
            var biz      = commandParam.UiBiz;
            var uiHelper = commandParam.UiHelper;
            var uiParam  = commandParam.UiParam;
            var sysParam = commandParam.SysParam;
            var conn     = commandParam.DbConnection;
            var prefix   = commandParam.ParameterPrefix;
            #endregion

            #region 初始化操作
            string     tableName = uiHelper.UiData.Crud.TableName;
            IDbCommand command   = conn.CreateCommand();
            command.CommandType = CommandType.Text;
            command.Parameters.Clear();
            StringBuilder sqlfield = new StringBuilder("INSERT INTO  " + tableName + " (");
            StringBuilder sqlvalue = new StringBuilder(") VALUES (");
            #endregion

            #region 数据整理
            #region 操作数据整理
            foreach (ParamField field in uiHelper.Insert.Panel.ParamFields)
            {
                string key        = field.FieldName.Trim();
                string datasource = string.Empty;
                if (!string.IsNullOrWhiteSpace(field.Datasource))
                {
                    datasource = field.Datasource.Trim();
                }
                object value = null;
                if (!uiParam.TryGetValue(key, out value))
                {
                    uiParam.TryGetValue(datasource, out value);
                }
                addDataParameter(sqlfield, sqlvalue, command, key, prefix, value);
            }
            #endregion

            #region 序列号字段
            foreach (SeqField field in uiHelper.UiData.Crud.SeqFields)
            {
                string key   = field.FieldName;
                string value = field.SeqName;
                if ((!string.IsNullOrWhiteSpace(key)) && (!string.IsNullOrWhiteSpace(value)))
                {
                    addDataParameter(sqlfield, sqlvalue, command, key, string.Empty, value);
                }
            }
            #endregion

            #region 主键
            if (!uiHelper.UiData.Crud.Primarykey.Identity)
            {
                string key = uiHelper.UiData.Crud.Primarykey.FieldName;
                if (!uiParam.ContainsKey(key) && !sqlKeys.Contains(key)) // 判断是否已在使用序列中添加 qusf 20150130
                {
                    string sqlstr = "select nvl(max(" + key + "),0) from " + tableName + "";
                    command.CommandText = sqlstr;
                    object value = command.ExecuteScalar();
                    if (value == null || value.ToString() == string.Empty)
                    {
                        value = 0;
                    }
                    value = Convert.ToInt64(value.ToString()) + 1;
                    addDataParameter(sqlfield, sqlvalue, command, key, prefix, value);
                }
            }
            #endregion

            #region 用户信息
            if (keyNotInSql(commandParam.UiBiz.UserField))
            {
                string key   = commandParam.UiBiz.UserField;
                object value = sysParam.UserId.Value;
                addDataParameter(sqlfield, sqlvalue, command, key, prefix, value);
            }
            #endregion
            #region 时间信息
            if (keyNotInSql(commandParam.UiBiz.TimeField))
            {
                string key   = commandParam.UiBiz.TimeField;
                object value = DateTime.Now;
                string dbkey = prefix + key;
                addDataParameter(sqlfield, sqlvalue, command, key, prefix, value);
            }
            #endregion
            #region  除标示
            if (keyNotInSql(sysParam.DeleteFlag.Key))
            {
                string key   = sysParam.DeleteFlag.Key;
                object value = sysParam.DeleteFlag.Value;
                addDataParameter(sqlfield, sqlvalue, command, key, prefix, value);
            }
            #endregion

            #region DataValues
            foreach (var dvalue in commandParam.UiBiz.DataValues)
            {
                string key   = dvalue.FieldName;
                object value = null;
                if ((keyNotInSql(dvalue.FieldName)) &&
                    commandParam.UiParam.TryGetValue(key, out value))
                {
                    addDataParameter(sqlfield, sqlvalue, command, key, prefix, value);
                }
            }
            #endregion
            sqlfield = sqlfield.Remove(sqlfield.Length - 1, 1);
            sqlvalue = sqlvalue.Remove(sqlvalue.Length - 1, 1);
            sqlvalue = sqlvalue.Append(")");
            #endregion

            #region 执行操作
            command.CommandText = sqlfield.ToString() + sqlvalue.ToString();
            command.CommandType = CommandType.Text;
            IDbCommandLog(command);
            int obj = Convert.ToInt32(command.ExecuteScalar());
            if (obj > 0)
            {
                result.iResult = -1;
                return(result);
            }
            #endregion

            return(result);
        }