示例#1
0
        /// <summary>
        /// 添加实体对象
        /// 将实体数据信息映射为一条插入sql语句
        /// </summary>
        /// <param name="entity">实体公共接口</param>
        /// <returns></returns>
        public int Add(IEntity entity)
        {
            IDataParameter[] param = null;
            string           sql   = Factory.CreateInsertSql(entity, out param);

            return(Convert.ToInt32(BaseHelper.ExecuteScalar(sql, param as SqlParameter[])));
        }
示例#2
0
        /// <summary>
        /// 根据某个表名查询实体集合(分页)
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="strTableName">属性名称</param>
        /// <param name="fieldShow">属性名称</param>
        /// <param name="pageSize">属性名称</param>
        /// <param name="currentPageIndex">属性名称</param>
        /// <param name="intCountPage">属性值</param>
        /// <param name="component">属性值</param>
        /// <returns></returns>
        public IList <T> GetList <T>(string strTableName, string fieldShow, int pageSize,
                                     int currentPageIndex, int intCountPage, ConditionComponent component) where T : class
        {
            IDataParameter[] param = null;

            StringBuilder sbSQL = new StringBuilder();

            sbSQL.Append(" select  ");
            sbSQL.Append(fieldShow);     //此功能暂未实现


            sbSQL.Append(" from ");
            sbSQL.Append(strTableName);

            if (component != null && component.sbComponent.Length > 0)
            {
                sbSQL.Append(" where ");

                sbSQL.Append(component.sbComponent.ToString());
            }

            intRowCount_ = int.Parse(BaseHelper.ExecuteScalar(sbSQL.ToString().Replace(fieldShow, "count(*)")).ToString());
            intPageNum_  = pageSize;
            //string strSql = Factory.CreatePageSql(typeof(T),pageSize, currentPageIndex, intCountPage, sbSQL.ToString());
            string strSql = Factory.CreatePageSql(typeof(T), pageSize, currentPageIndex, intCountPage, sbSQL.ToString());

            // return BaseHelper.Query(strSql);

            return(BaseHelper.ConvertToList <T>(BaseHelper.ExecuteDataReader(strSql, param as OracleParameter[])));
        }
示例#3
0
        /// <summary>
        /// 根据条件查询实体数据行数
        /// </summary>
        /// <param name="type">实体类型</param>
        /// <param name="dic">实体属性键值对</param>
        /// <param name="component">查询组件</param>
        /// <returns></returns>
        public int GetCount(string strTableName, ConditionComponent component)
        {
            IDataParameter[] param = null;
            string           sql   = string.Format(" select count(*) from {0} ", strTableName);

            if (component != null && component.sbComponent.Length > 0)
            {
                sql += " where " + component.sbComponent.ToString();
            }

            return(int.Parse(BaseHelper.ExecuteScalar(sql, param as OracleParameter[]).ToString()));
        }
示例#4
0
        /// <summary>
        /// 根据条件查询实体数据行数
        /// </summary>
        /// <param name="strTableName">实体类型</param>
        /// <param name="component">查询组件</param>
        /// <returns></returns>
        public int GetCount(string strTableName, ConditionComponent component)
        {
            IDataParameter[] param = null;
            string           sql   = string.Format(" select count(*) from {0} where 1=1 ", strTableName);

            if (component != null && component.sbComponent.Length > 0)
            {
                sql += " and " + component.sbComponent.ToString();
            }

            sql += (string.IsNullOrEmpty(strDelCol) ? "" : " and ") + strDelCol;

            return((int)BaseHelper.ExecuteScalar(sql, param));
        }
示例#5
0
        /// <summary>
        /// 添加实体对象
        /// 将泛型数据信息映射为一条插入sql语句
        /// 该泛型类必须实现IEntity 接口
        /// </summary>
        /// <typeparam name="T">实体泛型类型</typeparam>
        /// <param name="t">泛型实体值</param>
        /// <returns></returns>
        //public int Add<T>(T t) where T : IEntity
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateInsertSql<T>(t,out param);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return BaseHelper.ExecuteNonQuery( sql, param);
        //    }
        //}

        /// <summary>
        /// 添加实体对象
        /// value 的类型必须和type一致,这样才能保存值



        /// </summary>
        /// <param name="type">实体类型</param>
        /// <param name="value">实体类型实例</param>
        /// <returns></returns>
        //public int Add(Type type, object value)
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateInsertSql(type,value,out param);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return BaseHelper.ExecuteNonQuery( sql, param);
        //    }
        //}

        /// <summary>
        /// 根据实体公共接口修改该实体信息



        /// 该实体是根据主键修改
        /// </summary>
        /// <param name="entity">实体公共接口</param>
        /// <returns></returns>
        public int AddOrUpdate(IEntity entity)
        {
            IDataParameter[] param = null;
            string           sql   = Factory.CreateUpdateSql(entity, out param);

            //多条语句的场合



            if (sql.IndexOf(";") > 0)
            {
                return(Convert.ToInt32(BaseHelper.ExecuteScalar(sql, param as SqlParameter[])));
            }
            else
            {
                return(BaseHelper.ExecuteNonQuery(sql, param as SqlParameter[]));
            }
        }
示例#6
0
        /// <summary>
        /// 根据表名查询列表(分页)
        /// </summary>
        /// <param name="strTableName">返回个数 :0 全部返回</param>
        /// <param name="fieldShow">表名</param>
        /// <param name="pageSize">条件</param>
        /// <param name="currentPageIndex">表名</param>
        /// <param name="intCountPage">表名</param>
        /// <param name="component">表名</param>
        /// <param name="isDel">表名</param>
        /// <returns></returns>
        public DataTable GetList(string strTableName, string fieldShow, int pageSize,
                                 int currentPageIndex, int intCountPage, ConditionComponent component, int isDel)
        {
            StringBuilder sbSQL = new StringBuilder();

            sbSQL.Append(" select ");
            sbSQL.Append(fieldShow);
            sbSQL.Append(" from ");
            sbSQL.Append(strTableName);

            if (component != null && component.sbComponent.Length > 0)
            {
                sbSQL.Append(" where ");

                sbSQL.Append(component.sbComponent.ToString());
            }

            intRowCount_ = int.Parse(BaseHelper.ExecuteScalar(sbSQL.ToString().Replace(fieldShow, "count(*)")).ToString());
            intPageNum_  = pageSize;
            string strSql = Factory.CreatePageSql(pageSize, currentPageIndex, intCountPage, sbSQL.ToString(), isDel);

            return(BaseHelper.ExecuteTable(strSql));
        }
示例#7
0
        /// <summary>
        /// 查询该类型实体数据行数



        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <returns></returns>
        public int GetCount <T>() where T : class
        {
            string sql = Factory.CreateConverageSql(typeof(T), Converage.Count);

            return((int)BaseHelper.ExecuteScalar(sql));
        }
示例#8
0
        ///// <summary>
        ///// 根据实体类的类型和主键值查询实体对象



        ///// 使用 type 确定实体,主键确定数据的唯



        ///// 一性



        ///// </summary>
        ///// <param name="type">实体类型</param>
        ///// <param name="pkPropertyValue">主键值</param>
        ///// <returns></returns>
        //public object GetEntity(Type type, object pkPropertyValue)
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateSingleSql(type,pkPropertyValue,out param);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return baseHelper_.ConvertToEntity(type,BaseHelper.ExecuteDataReader(sql,param));
        //    }
        //}

        ///// <summary>
        ///// 根据某个实体的属性来查询实体对象
        ///// 该属性值能确定数据库唯一数据行



        ///// </summary>
        ///// <typeparam name="T">实体泛型类</typeparam>
        ///// <param name="propertyName">属性名称</param>
        ///// <param name="propertyValue">属性值</param>
        ///// <returns></returns>
        //public T GetEntity<T>(string propertyName, object propertyValue) where T : class
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateQueryByPropertySql(typeof(T),propertyName,propertyValue,out param,null);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return BaseHelper.ConvertToEntity<T>(BaseHelper.ExecuteDataReader(sql,param));
        //    }
        //}

        ///// <summary>
        ///// 根据某个实体的属性来查询实体对象
        ///// 该属性值能确定数据库唯一数据行



        ///// </summary>
        ///// <param name="type">实体类型</param>
        ///// <param name="propertyName">属性名称</param>
        ///// <param name="propertyValue">属性值</param>
        ///// <returns></returns>
        //public object GetEntity(Type type, string propertyName, object propertyValue)
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateQueryByPropertySql(type, propertyName, propertyValue, out param,null);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return BaseHelper.ConvertToEntity(type,BaseHelper.ExecuteDataReader(sql,param));
        //    }
        //}

        ///// <summary>
        ///// 根据某个实体的多个属性来查询实体对象
        ///// </summary>
        ///// <typeparam name="T">泛型类</typeparam>
        ///// <param name="entity">实体公共接口</param>
        ///// <param name="propertyNames">属性名称数组</param>
        ///// <returns></returns>
        //public T GetEntity<T>(IEntity entity, string[] propertyNames) where T : class
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateSingleSql(entity,out param,propertyNames);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return BaseHelper.ConvertToEntity<T>(BaseHelper.ExecuteDataReader(sql,param));
        //    }
        //}

        ///// <summary>
        ///// 根据某个实体的多个属性来查询实体对象
        ///// 实体根据type类型来确定



        ///// </summary>
        ///// <param name="type">实体类型</param>
        ///// <param name="entity">实体公共接口</param>
        ///// <param name="propertyNames">属性名称数组</param>
        ///// <returns></returns>
        //public object GetEntity(Type type, IEntity entity, string[] propertyNames)
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateSingleSql(type,entity,out param,propertyNames);
        //    using (IDbProvider provider = new SqlProvider())
        //    {
        //        return BaseHelper.ConvertToEntity(type,BaseHelper.ExecuteDataReader(sql,param));
        //    }
        //}


        /// <summary>
        /// 查询该类型实体数据行数



        /// </summary>
        /// <param name="type">实体类型</param>
        /// <returns></returns>
        public int GetCount(Type type)
        {
            string sql = Factory.CreateConverageSql(type, Converage.Count);

            return((int)BaseHelper.ExecuteScalar(sql));
        }
示例#9
0
        ///// <summary>
        ///// 添加实体对象
        ///// 将泛型数据信息映射为一条插入sql语句
        ///// 该泛型类必须实现IEntity 接口
        ///// </summary>
        ///// <typeparam name="T">实体泛型类型</typeparam>
        ///// <param name="t">泛型实体值</param>
        ///// <returns></returns>
        //public int Add<T>(T t) where T : IEntity
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateInsertSql<T>(t,out param);

        //    return (int)BaseHelper.ExecuteNonQuery(sql, param as OracleParameter[]);

        //}

        ///// <summary>
        ///// 添加实体对象
        ///// value 的类型必须和type一致,这样才能保存值


        ///// </summary>
        ///// <param name="type">实体类型</param>
        ///// <param name="value">实体类型实例</param>
        ///// <returns></returns>
        //public int Add(Type type, object value)
        //{
        //    IDataParameter[] param = null;
        //    string sql = Factory.CreateInsertSql(type,value,out param);

        //    return (int)BaseHelper.ExecuteNonQuery(sql, param as OracleParameter[]);

        //}


        /// <summary>
        /// 根据实体公共接口修改该实体信息


        /// 该实体是根据主键修改
        /// </summary>
        /// <param name="entity">实体公共接口</param>
        /// <returns></returns>
        public int AddOrUpdate(IEntity entity)
        {
            IDataParameter[] param = null;
            string           sql   = Factory.CreateUpdateSql(entity, out param);

            //多条语句的场合


            if (sql.IndexOf(";") > 0)
            {
                string[] strSQLS    = sql.Split(";".ToCharArray());
                bool     bolInTrans = BaseHelper.IsRransaction;

                try
                {
                    this.BeginTransaction();
                    int iRet = int.Parse(BaseHelper.ExecuteNonQuery(strSQLS[0],
                                                                    param as OracleParameter[]).ToString());
                    if (iRet > 0)
                    {
                        string strRet = BaseHelper.ExecuteScalar(strSQLS[1]).ToString();
                        decSeqence = decimal.Parse(strRet);

                        if (strRet.Length <= 10)
                        {
                            if (long.Parse(strRet) <= 2147483647)  //因为设计时没考虑主键会超过int型最大值,超过最大值的返回不了当前序列
                            {
                                iRet = int.Parse(strRet);
                            }
                            else
                            {
                                iRet = 1;
                            }
                        }
                        else
                        {
                            iRet = 1;
                        }
                    }

                    //事务的场合


                    if (!bolInTrans)
                    {
                        if (iRet > 0)
                        {
                            this.Commit();
                        }
                        else
                        {
                            this.RollBack();
                        }
                    }
                    return(iRet);
                }
                catch (Exception ex)
                {
                    if (!bolInTrans)
                    {
                        this.RollBack();
                    }
                    throw ex;
                }
            }
            else //单语句场合

            {
                return(int.Parse(BaseHelper.ExecuteNonQuery(sql, param as OracleParameter[]).ToString()));
            }
        }