public SQLPage <T> ConvertPage <T>(object obj, DataSet ds) { var resutl = new SQLPage <T>(); resutl.Result = Convert <T>(obj, ds.Tables[0]); resutl.Count = System.Convert.ToInt32(ds.Tables[1].Rows[0]["total"]); resutl.Pagination = System.Convert.ToInt32(ds.Tables[1].Rows[0]["rows"]); return(resutl); }
public SQLPage <SQLDynamicRow> GetDyncGrid(int page, int current, string tblName, string where = "", string order = "") { var sqlStr = "select * from (select row_number()over(order by tempColumn)rownumber, * from(select top {0} tempColumn = 0, * from {1})a )b where rownumber > {2}"; var sqlTotal = "select count(0) as total,case when (count(0)%{0}) = 0 then (count(0)/{0}) else (count(0)/{0})+1 end as rows from {1}"; var sql = new StringBuilder().AppendFormat( sqlStr , current * page + page , $"[{tblName}] {where} {order}" , current * page ); sql.AppendFormat( sqlTotal , page , $"[{tblName}] {where}" ); var dataSet = _dbHelper.ExecuteDataSetTp(sql.ToString()); var dataList = dataSet.Tables[0]; var name = new List <string>(); foreach (DataColumn item in dataList.Columns) { if (item.ColumnName == "tempColumn" || item.ColumnName == "rownumber") { continue; } name.Add(item.ColumnName); } var sqlPage = new SQLPage <SQLDynamicRow>() { Result = dataList.AsEnumerable().Select(t => { return(new SQLDynamicRow() { Row = name.Select(n => { return new SQLDynamicItem() { Name = n, Value = GetValue(t[n]) }; }) }); }), Count = System.Convert.ToInt32(dataSet.Tables[1].Rows[0]["total"]), Pagination = System.Convert.ToInt32(dataSet.Tables[1].Rows[0]["rows"]) }; return(sqlPage); }