示例#1
0
        /// <summary>
        /// 查询一个对象出来
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="pk">主键值</param>
        /// <returns>一个对象</returns>
        public static T Query <T>(object pk)
        {
            IDataAccess dataAccess = CreateConn();

            if (pk == null || pk.ToString().Length == 0)
            {
                throw new ArgumentException("查询的PK主键不得为空!");
                //return null;
            }

            string    sql = SimpleOrmCache.GetSelectSql(typeof(T)) + " where " + SimpleOrmCache.GetPK(typeof(T)) + "=";
            FieldInfo key = typeof(T).GetField(SimpleOrmCache.GetPK(typeof(T)), BindingFlags.IgnoreCase | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy);

            if (typeof(int) == key.FieldType)
            {
                sql += pk.ToString();
            }
            else
            {
                sql += "'" + pk.ToString() + "'";
            }
            DataTable dt = dataAccess.SelectDataTable(sql, SimpleOrmCache.GetTableName(typeof(T)));

            if (dt != null && dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                return(CreateFromDataRow <T>(dr));
            }
            else
            {
                return(default(T));
            }
        }
示例#2
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="condition">条件语句</param>
        /// <param name="pager">分页对象</param>
        /// <param name="order">排序列</param>
        /// <param name="isDesc">是否降序</param>
        /// <returns></returns>
        public List <T> Query <T>(string condition, Pager pager, string order, bool isDesc)
        {
            IDataAccess dataAccess = CreateConn();
            List <T>    result     = new List <T>();
            string      sql        = dataAccess.GetPageSql(SimpleOrmCache.GetSelectSql(typeof(T)) + condition, pager, order, isDesc);

            DataTable dt = dataAccess.SelectDataTable(sql, SimpleOrmCache.GetTableName(typeof(T)));

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    result.Add(CreateFromDataRow <T>(dr));
                }
            }
            return(result);
        }