Exemple #1
0
        /// <summary>
        /// 根据条件查询对象,不支持分表数据的查询
        /// 只支持映射类
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="where"></param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public T GetObject <T>(string where, params object[] paras)
        {
            Type    type  = typeof(T);
            DBTable table = MapHelper.GetDBTable(type);

            string sql = string.Format("select * from {0} {1}",
                                       table.Name,
                                       string.IsNullOrEmpty(where) ? "" : "where " + FormatWhereOrder(table, where));

            Command.CommandText = sql;
            Command.CommandType = CommandType.Text;
            Command.Parameters.Clear();

            int i = 0;

            foreach (object obj in paras)
            {
                AddParameter(FormatParameterName("p" + (i++).ToString()), ParameterDirection.Input, obj);
            }
            using (IDataReader reader = Command.ExecuteReader())
            {
                while (reader.Read())
                {
                    return(FullDataReader.CreateDegFullMapObj <T>(reader)(reader));
                }
            }
            return(default(T));
        }
Exemple #2
0
        /// <summary>
        /// 通过ID获取指定类型的对象,支持分表数据的获取
        /// </summary>
        /// <param name="id"></param>
        /// <param name="type">返回对象类型</param>
        /// <returns></returns>
        public object GetById(object id, Type type)
        {
            DBTable table = MapHelper.GetDBTable(type);

            if (table.PrimaryKey.Count > 1)
            {
                throw new Exception("联合主建,不支持GetById方法");
            }

            //获取对应的数据库表名
            string tbName = TableSeparate.GetTableName(table, id);

            string pName = this.FormatParameterName(table.PrimaryKey[0].AliasName);
            string sql   = string.Format("select * from {0} where {1}={2}", tbName, table.PrimaryKey[0].Name, pName);

            Command.Parameters.Clear();
            //添加查询条件参数
            AddParameter(this.FormatParameterName(table.PrimaryKey[0].AliasName), ParameterDirection.Input, id);
            Command.CommandText = sql;
            Command.CommandType = CommandType.Text;

            using (IDataReader reader = Command.ExecuteReader())
            {
                while (reader.Read())
                {
                    return(FullDataReader.CreateDegFullMapObj(reader, type)(reader));
                }
            }
            return(null);
        }
Exemple #3
0
        /// <summary>
        /// 根据SQL语句查询对象,不支持分表数据的查询
        /// </summary>
        /// <param name="where"></param>
        /// <param name="type">返回对象类型</param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public object GetObjectBySQL(string sql, Type type, params object[] paras)
        {
            DBTable table = MapHelper.GetDBTableExist(type);

            if (table != null)
            {
                Command.CommandText = FormatWhereOrder(table, sql);
                Command.CommandType = CommandType.Text;
                Command.Parameters.Clear();
                int i = 0;
                foreach (object obj in paras)
                {
                    AddParameter(FormatParameterName("p" + (i++).ToString()), ParameterDirection.Input, obj);
                }
                using (IDataReader reader = Command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        return(FullDataReader.CreateDegFullMapObj(reader, type)(reader));
                    }
                }
                return(null);
            }
            else
            {
                return(GetCustomerObject(sql, type, paras));
            }
        }
Exemple #4
0
 public ServiceLogic(string sourcePath)
 {
     this._mainDataFile   = Consts.MainDataFilePath;
     this._LinksFile      = Consts.LinksFilePath;
     this._ImagesFile     = Consts.ImagesFilePath;
     this._fullDataReader = new FullDataReader(this._mainDataFile, this._LinksFile, this._ImagesFile);
 }
Exemple #5
0
 /// <summary>
 /// 动态可扩展集合对象 List&lt;System.Dynamic.ExpandoObject&gt;
 /// 返回对象与列名一致,返回对象可动态扩展
 /// </summary>
 /// <param name="sql"></param>
 /// <param name="paras"></param>
 /// <returns></returns>
 public object GetExpandoDynamicList(string sql, params object[] paras)
 {
     Command.CommandType = CommandType.Text;
     Command.CommandText = PrepareCustomSelect(sql, paras);
     using (IDataReader reader = Command.ExecuteReader())
     {
         return(FullDataReader.CreateDegExpandoDynamicFullList(reader)(reader));
     }
 }
Exemple #6
0
 public object GetExpandoDynamicObject(string sql, params object[] paras)
 {
     Command.CommandType = CommandType.Text;
     Command.CommandText = PrepareCustomSelect(sql, paras);
     using (IDataReader reader = Command.ExecuteReader(CommandBehavior.SingleRow))
     {
         while (reader.Read())
         {
             return(FullDataReader.CreateDegExpandoDynamicFullObj(reader)(reader));
         }
     }
     return(null);
 }
Exemple #7
0
 /// <summary>
 /// 获取自定义对象列表,自己给定SQL语句
 /// 通过字段名称与属性名称匹配来进行填充(不区分大小写)
 /// </summary>
 /// <param name="pageIndex">分页索引,以1开始</param>
 /// <param name="pageSize">分页大小</param>
 /// <param name="fields">字段列表,以“,”分隔</param>
 /// <param name="from">表名称,比如t_a left join t_b on t_a.id=t_b.id</param>
 /// <param name="where">Where 条件,参数用?代替</param>
 /// <param name="group">Group by 子句</param>
 /// <param name="order">排序方式,不包含"order by"</param>
 /// <param name="paras">条件参数</param>
 /// <returns>List</returns>
 public object GetDynamicPagingList(
     int pageIndex,
     int pageSize,
     string fields,
     string from,
     string where,
     string group,
     string order,
     params object[] paras)
 {
     Command.CommandType = CommandType.Text;
     Command.CommandText = PrepareCustomSelectPaging(pageIndex, pageSize, fields, from, where, group, order, paras);
     using (IDataReader reader = Command.ExecuteReader())
     {
         return(FullDataReader.CreateDegFullDynamicList(reader)(reader));
     }
 }
Exemple #8
0
        /// <summary>
        /// 获取自定义的对象列表列表
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="type">返回对象类型</param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public List <object> GetCustomerList(string sql, Type type, params object[] paras)
        {
            Command.CommandText = FormatSqlForParameter(sql);
            Command.CommandType = CommandType.Text;
            Command.Parameters.Clear();
            int i = 0;

            foreach (object obj in paras)
            {
                AddParameter(FormatParameterName("p" + (i++).ToString()), ParameterDirection.Input, obj);
            }

            using (IDataReader reader = Command.ExecuteReader())
            {
                return(FullDataReader.CreateDegFullCustomList(reader, type)(reader));
            }
        }
Exemple #9
0
        /// <summary>
        /// 获取自定义对象列表,自己给定SQL语句
        /// 通过字段名称与属性名称匹配来进行填充(不区分大小写)
        /// </summary>
        /// <typeparam name="T">返回的对象类型</typeparam>
        /// <param name="pageIndex">分页索引,以1开始</param>
        /// <param name="pageSize">分页大小</param>
        /// <param name="before">加在SQL语句最前面</param>
        /// <param name="fields">字段列表,以“,”分隔</param>
        /// <param name="from">表名称,比如t_a left join t_b on t_a.id=t_b.id</param>
        /// <param name="where">Where 条件,参数用?代替</param>
        /// <param name="group">Group by 子句</param>
        /// <param name="order">排序方式,不包含"order by"</param>
        /// <param name="paras">条件参数</param>
        /// <returns>List</returns>
        public List <object> GetCustomPagingList(Type type,
                                                 int pageIndex,
                                                 int pageSize,
                                                 string before,
                                                 string fields,
                                                 string from,
                                                 string where,
                                                 string group,
                                                 string order,
                                                 params object[] paras)
        {
            Command.CommandType = CommandType.Text;
            string sql = PrepareCustomSelectPaging(pageIndex, pageSize, fields, from, where, group, order, paras);

            Command.CommandText = string.Format("{0} {1}", before, sql);
            using (IDataReader reader = Command.ExecuteReader())
            {
                return(FullDataReader.CreateDegFullCustomList(reader, type)(reader));
            }
        }
Exemple #10
0
        /// <summary>
        /// 根据SQL语句查询对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sql">SQL语句</param>
        /// <param name="paras"></param>
        /// <returns></returns>
        public T GetCustomerObject <T>(string sql, params object[] paras)
        {
            Command.CommandText = FormatSqlForParameter(sql);
            Command.CommandType = CommandType.Text;
            Command.Parameters.Clear();
            int i = 0;

            foreach (object obj in paras)
            {
                AddParameter(FormatParameterName("p" + (i++).ToString()), ParameterDirection.Input, obj);
            }
            using (IDataReader reader = Command.ExecuteReader())
            {
                while (reader.Read())
                {
                    return(FullDataReader.CreateDegFullCustomObj <T>(reader)(reader));
                }
            }
            return(default(T));
        }
Exemple #11
0
        /// <summary>
        /// 根据条件获取列表,不支持分表数据的查询
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="type">返回对象类型</param>
        /// <returns></returns>
        public List <object> GetList(string where, string order, Type type, params object[] paras)
        {
            DBTable table = MapHelper.GetDBTable(type);

            string sql = string.Format("select * from {0} {1} {2}",
                                       table.Name,
                                       string.IsNullOrEmpty(where) ? "" : "where " + FormatWhereOrder(table, where),
                                       string.IsNullOrEmpty(order) ? "" : string.Format(" order by {0}", order));

            Command.CommandText = sql;
            Command.CommandType = CommandType.Text;
            Command.Parameters.Clear();

            int i = 0;

            foreach (object obj in paras)
            {
                AddParameter(FormatParameterName("p" + (i++).ToString()), ParameterDirection.Input, obj);
            }
            using (IDataReader reader = Command.ExecuteReader())
            {
                return(FullDataReader.CreateDegFullMapList(reader, type)(reader));
            }
        }
Exemple #12
0
        /// <summary>
        /// 根据SQL语句查询列表,不支持分表数据的查询
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sql"></param>
        /// <returns></returns>
        public List <T> GetListBySQL <T>(string sql, params object[] paras)
        {
            DBTable table = MapHelper.GetDBTableExist(typeof(T));

            if (table != null)
            {
                Command.CommandText = FormatWhereOrder(table, sql);
                Command.CommandType = CommandType.Text;
                Command.Parameters.Clear();
                int i = 0;
                foreach (object obj in paras)
                {
                    AddParameter(FormatParameterName("p" + (i++).ToString()), ParameterDirection.Input, obj);
                }
                using (IDataReader reader = Command.ExecuteReader())
                {
                    return(FullDataReader.CreateDegFullMapList <T>(reader)(reader));
                }
            }
            else
            {
                return(GetCustomerList <T>(sql, paras));
            }
        }