예제 #1
0
        public DataTable GetDataByKey(string tablename, string field, object obj)
        {
            string        sql   = "select * from " + tablename + " where " + field + "=@" + field;
            IDbParameters param = AdoTemplate.CreateDbParameters();

            param.AddWithValue(field, obj);
            DataTable dt = AdoTemplate.DataTableCreateWithParams(CommandType.Text, sql, param);

            dt.TableName = tablename;
            return(dt);
        }
예제 #2
0
 /// <summary>
 /// 获取指定sql的数据
 /// </summary>
 /// <param name="tablename"></param>
 /// <param name="hs"></param>
 /// <returns></returns>
 public List <T> GetList <T>(CommandType commandType, string sql, IDbParameters param)
 {
     try
     {
         DataTable dt = AdoTemplate.DataTableCreateWithParams(CommandType.Text, sql, param);
         return(ObjectHelper.CopyToObjects <T>(dt).ToList() ?? default(List <T>));
     }
     catch (Exception ex)
     {
         return(default(List <T>));
     }
 }
예제 #3
0
 public DataTable QueryDataTable(CommandType commandType, string cmdText, IDbParameters parameters)
 {
     if (commandType == CommandType.StoredProcedure)
     {
         cmdText = cmdText.Split(' ')[0];
     }
     try
     {
         return(_AdoTemplate.DataTableCreateWithParams(commandType, cmdText, parameters));
     }
     catch (Exception e)
     {
         dsExceptionHandler.HandleException(e);
         ReConnection(e);
         throw e;// new Goodway.CommonModel.Exception.DbException(DbResult.SqlError, e.Message ?? "" + Environment.NewLine + e.StackTrace ?? "", cmdText);
     }
 }
예제 #4
0
        /// <summary>
        /// 分页(最好是通过存储过程去分页取数据,因为数据库sql语法不一样)
        /// 这里只支持了mysql分页
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sql"></param>
        /// <param name="param"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public PagedList <T> GetPageList <T>(string sql, IDbParameters param, int pageIndex, int pageSize, string orderBy)
        {
            PagedList <T> pageList = null;

            if (!string.IsNullOrEmpty(orderBy))
            {
                sql += " order by " + orderBy;
            }
            var obj            = AdoTemplate.ExecuteScalar(CommandType.Text, "select count(1) from (" + sql + ") as A", param);
            int totalItemCount = int.Parse(obj.ToString());

            sql += " limit " + (pageIndex - 1) * pageSize + "," + pageSize + "";
            DataTable dt = AdoTemplate.DataTableCreateWithParams(CommandType.Text, sql, param);

            T[] list = ObjectHelper.CopyToObjects <T>(dt);
            pageList = new PagedList <T>(list, pageIndex, pageSize, totalItemCount);
            return(pageList);
        }
예제 #5
0
        /// <summary>
        /// 获取指定条件的数据
        /// </summary>
        /// <param name="tablename"></param>
        /// <param name="hs"></param>
        /// <returns></returns>
        public List <T> GetList <T>(Hashtable hs)
        {
            List <T> list = new List <T>();

            try
            {
                Type type = typeof(T);
                List <PropertyInfo> propertys = type.GetProperties().ToList();
                var attribute = type.GetCustomAttributes(typeof(TableMapAttribute), false).FirstOrDefault();
                if (attribute == null)
                {
                    throw new Exception("类" + type.Name + "必须添加'TableMapAttribute'属性");
                }
                string tableName = ((TableMapAttribute)attribute).TableName;
                string sql       = "select * from " + tableName + " where 1=1";
                //对于有IsDelete属性的,过滤已删除的数据
                if (propertys.Exists(p => p.Name.ToLower() == "isdelete"))
                {
                    sql += " and IsDelete=0 ";
                }
                IDbParameters param = AdoTemplate.CreateDbParameters();
                foreach (string key in hs.Keys)
                {
                    sql += string.Format(" and {0}=?{0}", key);
                    param.AddWithValue(key, hs[key]);
                }
                DataTable dt = AdoTemplate.DataTableCreateWithParams(CommandType.Text, sql, param);
                dt.TableName = tableName;
                list         = ObjectHelper.CopyToObjects <T>(dt).ToList();
                return(list ?? new List <T>());
            }
            catch (Exception ex)
            {
                return(list);
            }
        }
예제 #6
0
 /// <summary>
 /// 执行sql语句
 /// </summary>
 public DataTable ExecteSqlGetDataTable(string sql, IDbParameters parms, CommandType commandType = CommandType.Text)
 {
     return(AdoTemplate.DataTableCreateWithParams(commandType, sql, parms));
 }