Пример #1
0
        /// <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;
        }
Пример #2
0
        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);
        }
Пример #3
0
 /// <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;
 }
Пример #4
0
        /// <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);
        }
Пример #5
0
 public BaseHelper(IPagingSQL paging, DBType type)
 {
     this.paging = paging;
     _type       = type;
 }