/// <summary> /// 获取分页数据 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <typeparam name="TQueryForm"></typeparam> /// <param name="mapper"></param> /// <param name="session"></param> /// <param name="command"></param> /// <param name="statementName"></param> /// <param name="form"></param> /// <param name="enableLog"></param> /// <returns></returns> public static List<TEntity> QueryForPaging<TEntity, TQueryForm>(ISqlMapper mapper, ISqlMapSession session, IDbCommand command, string statementName, TQueryForm form, bool enableLog = true) where TEntity : IEntity where TQueryForm : IQueryForm { IPagingSQL paging = PagingSQLFactory.Create(mapper.DataSource.DbProvider.Name); var sql = mapper.GetRuntimeSql(statementName, form, session); if (form.StartIndex > -1 && form.EndIndex > -1) { sql = paging.GetPagingSQL(sql, form.OrderByColumn, form.StartIndex.Value, form.EndIndex.Value, form.OrderBy); } sql = paging.BuildOrderBy(sql, form.OrderByColumn, form.OrderBy); command.CommandText = sql; string paramString = BuildParams(mapper, statementName, form, command); IDataAdapter dataAdapter = session.CreateDataAdapter(command); DataSet set = new DataSet(); dataAdapter.Fill(set); DataTable table = set.Tables[0]; var list = table.ToList<TEntity>().ToList(); if (enableLog) { SimpleLogger logger = new SimpleLogger(); logger.Write(sql, true); logger.Write(paramString, true); } return list; }
public static IPagingSQL Create(string dbType) { IPagingSQL paging = null; switch (dbType.ToLower()) { case "sqlserver2005": paging = new MSSQLPagingSQL(); break; case "mysql": paging = new MySQLPagingSQL(); break; } return(paging); }
/// <summary> /// 获取总数 /// </summary> /// <typeparam name="TQueryForm"></typeparam> /// <param name="mapper"></param> /// <param name="session"></param> /// <param name="command"></param> /// <param name="statementName"></param> /// <param name="form"></param> /// <param name="enableLog"></param> /// <returns></returns> public static int GetCount<TQueryForm>(ISqlMapper mapper, ISqlMapSession session, IDbCommand command, string statementName, TQueryForm form, bool enableLog = true) where TQueryForm : IQueryForm { IPagingSQL paging = PagingSQLFactory.Create(mapper.DataSource.DbProvider.Name); var sql = mapper.GetRuntimeSql(statementName, form, session); var countsql = paging.GetCountSQL(sql); command.Connection = session.Connection; command.CommandText = countsql; var paramString = BuildParams(mapper, statementName, form, command); if (command.Connection.State != ConnectionState.Open) command.Connection.Open(); int count = (int)command.ExecuteScalar(); if (enableLog) { SimpleLogger logger = new SimpleLogger(); logger.Write(sql, true); logger.Write(paramString, true); } return count; }
/// <summary> /// 创建分页器 /// </summary> /// <param name="type"></param> /// <returns></returns> public static IPagingSQL CreateSqlPager(DBType type) { IPagingSQL paging = null; switch (type) { case DBType.MSSQL2005P: case DBType.MSSQL: paging = new MSSQLPagingSQL(); break; case DBType.SQLite: paging = new SQLitePagingSQL(); break; case DBType.Oracle: paging = new OraclePagingSQL(); break; } return(paging); }
public BaseHelper(IPagingSQL paging, DBType type) { this.paging = paging; _type = type; }