/// <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[]))); }
/// <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[]))); }
/// <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())); }
/// <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)); }
/// <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[])); } }
/// <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)); }
/// <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)); }
///// <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)); }
///// <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())); } }