/// <summary> /// 执行SQL语句委托绑定数据对象列表 /// </summary> /// <param name="sqlStr">要执行的SQLScript</param> /// <param name="delegateDataBind">委托绑定数据方法</param> /// <returns>返回执行绑定数据后的数据列表</returns> public List <T> ExecuterReaderDataBind(string sqlStr, DataReaderBind delegateDataBind) { List <T> list = new List <T>(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader dr = db.ExecuteReader(CommandType.Text, sqlStr)) { while (dr.Read()) { list.Add(delegateDataBind(dr)); } } return(list); }
/// <summary> /// 根据条件分页查询 /// </summary> /// <param name="pageProcInfo">分页存储过程过滤条件</param> /// <param name="total">总页数</param> /// <param name="delegateDataBind">绑定数据委托事件</param> /// <returns></returns> public List <T> PagingQueryProcedures(PagingProceduresInfo pageProcInfo, out int total, DataReaderBind delegateDataBind) { List <T> list = new List <T>(); Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetStoredProcCommand("Proc_CommonPagingStoredProcedure"); db.AddInParameter(dbCommand, "Tables", DbType.String, pageProcInfo.Tables); db.AddInParameter(dbCommand, "PK", DbType.String, pageProcInfo.PK); db.AddInParameter(dbCommand, "Sort", DbType.String, pageProcInfo.Sort); db.AddInParameter(dbCommand, "PageNumber", DbType.Int32, pageProcInfo.PageNumber); db.AddInParameter(dbCommand, "PageSize", DbType.Int32, pageProcInfo.PageSize); db.AddInParameter(dbCommand, "Fields", DbType.String, pageProcInfo.Fields); db.AddInParameter(dbCommand, "Filter", DbType.String, pageProcInfo.Filter); db.AddInParameter(dbCommand, "isCount", DbType.Boolean, pageProcInfo.IsCount); db.AddOutParameter(dbCommand, "Total", DbType.Int32, 4); using (IDataReader dr = db.ExecuteReader(dbCommand)) { while (dr.Read()) { list.Add(delegateDataBind(dr)); } dr.Close(); } if (db.GetParameterValue(dbCommand, "@Total") != null && db.GetParameterValue(dbCommand, "@Total") != DBNull.Value) { total = (int)db.GetParameterValue(dbCommand, "@Total"); } else { total = 0; } return(list); }