/// <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; }