Beispiel #1
0
        /// <summary>
        /// 通用更新或删除数据
        /// </summary>
        /// <param name="cmdType">命令类型</param>
        /// <param name="cmdText">sql语句或存储过程名称</param>
        /// <param name="sqlParms">参数</param>
        /// <param name="opRowCount">返回受影响行数</param>
        /// <returns></returns>
        public DbExecMsg TOpData(CommandType cmdType, string cmdText, ref SortedList <string, MySqlParameter> sqlParms, out int opRowCount)
        {
            DbExecMsg execMsg = new DbExecMsg();

            execMsg.IsSuccess = true;
            execMsg.ErrType   = false;
            opRowCount        = 0;

            using (MysqlDbOp dbOp = new MysqlDbOp(ConnStr))
            {
                dbOp.DbCmdParm.CmdType = cmdType;
                dbOp.DbCmdParm.CmdText = cmdText;
                foreach (var pnItem in sqlParms.Keys)
                {
                    dbOp.DbCmdParm.MysqlParms.Add(pnItem, sqlParms[pnItem]);
                }

                try
                {
                    opRowCount = dbOp.ExecNonCmd();
                    foreach (var pnItem in dbOp.DbCmdParm.MysqlParms.Keys)
                    {
                        if (sqlParms.ContainsKey(pnItem) && dbOp.DbCmdParm.MysqlParms[pnItem].Direction == ParameterDirection.Output)
                        {
                            if (!string.IsNullOrEmpty(sqlParms[pnItem].Value.ToString().Trim()))
                            {
                                execMsg.IsSuccess = false;
                                execMsg.ErrType   = true;
                                execMsg.ErrMsg    = new Exception(sqlParms[pnItem].Value.ToString());
                                opRowCount        = -1;
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    execMsg.IsSuccess = false;
                    execMsg.ErrMsg    = ex;
                }
            }

            return(execMsg);
        }
Beispiel #2
0
        /// <summary>
        /// 通用获取数据表BindingList
        /// </summary>
        /// <typeparam name="T">返回数据对象</typeparam>
        /// <param name="cmdType">命令类型</param>
        /// <param name="cmdText">sql语句或存储过程名称</param>
        /// <param name="sqlParms">参数</param>
        /// <param name="tInfo">返回数据库BindingList</param>
        /// <returns></returns>
        public DbExecMsg TLGetInfo <T>(CommandType cmdType, string cmdText, ref SortedList <string, MySqlParameter> sqlParms, out BindingList <T> tInfo) where T : new()
        {
            DbExecMsg execMsg = new DbExecMsg();

            execMsg.IsSuccess = true;
            execMsg.ErrType   = false;
            tInfo             = new BindingList <T>();

            try
            {
                DataTable dt;
                execMsg = TGetTable(cmdType, cmdText, ref sqlParms, out dt);
                if (execMsg.IsSuccess)
                {
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            DataRow dr  = dt.Rows[i];
                            T       tmp = new T();
                            if (DataRowToInfoObj(dr, tmp))
                            {
                                tInfo.Add(tmp);
                            }
                            else
                            {
                                execMsg.IsSuccess = false;
                                execMsg.ErrMsg    = new Exception("转换对象异常");
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                execMsg.IsSuccess = false;
                execMsg.ErrMsg    = ex;
            }

            return(execMsg);
        }