public static PartlyCollection <LogEntity> GetLogsListII(PagenationDataFilter filter, string connectionName) { WhereSqlClauseBuilder where = filter.ConvertToWhereBuilder(); string sqlFormat = @"With tmplLog as( SELECT row_number() over (order by CreateTime desc) AS ROW_INDEX, * FROM ( SELECT * ,(Title + Source+ CONVERT( VARCHAR(MAX),[Message])) as KeyWord FROM [APPLICATION_LOG] ) AS T WHERE 1=1 AND ({0}) ) SELECT * FROM tmplLog WHERE ROW_INDEX BETWEEN {1} AND {2} AND ({0}); SELECT count (*) AS TOTALCOUNT FROM ( SELECT *,(Title + Source+ CONVERT( VARCHAR(MAX),[Message])) as KeyWord from [APPLICATION_LOG] )T WHERE 1=1 AND ({0})"; int rowIndex = filter.RowIndex; int pageSize = filter.PageSize; string whereStr = where.ToSqlString(TSqlBuilder.Instance); string sql = string.Format(sqlFormat, string.IsNullOrEmpty(whereStr) ? "1=1" : whereStr, rowIndex, rowIndex + pageSize); DataSet ds = DbHelper.RunSqlReturnDS(sql, connectionName); List <LogEntity> list = new List <LogEntity>(); int count = 0; foreach (DataRow row in ds.Tables[0].Rows) { string message = DataConverter.ChangeType <object, string>(row["Message"]); LogEntity item = new LogEntity(message); //item.ActivityID = DataConverter.ChangeType<object, Guid>(row["EventID"], typeof(Guid)); item.EventID = DataConverter.ChangeType <object, int>(row["EventID"]); item.LogEventType = DataConverter.ChangeType <object, TraceEventType>(row["TraceEventType"]); item.MachineName = DataConverter.ChangeType <object, string>(row["MachineName"]); item.Priority = DataConverter.ChangeType <object, LogPriority>(row["LogPriority"]); item.Source = DataConverter.ChangeType <object, string>(row["Source"]); item.StackTrace = DataConverter.ChangeType <object, string>(row["StackTrace"]); item.TimeStamp = DataConverter.ChangeType <object, DateTime>(row["CreateTime"]); item.Title = DataConverter.ChangeType <object, string>(row["Title"]); item.CreatorName = DataConverter.ChangeType <object, string>(row["CreatorName"]); list.Add(item); } count = DataConverter.ChangeType <object, int>(ds.Tables[1].Rows[0][0]); PartlyCollection <LogEntity> result = PartlyCollection <LogEntity> .Create(list, count); return(result); }