/// <summary>
/// 分页
/// </summary>
/// <param name="num">每页的数量</param>
/// <param name="page">页码</param>
/// <param name="model">参数列表(用于查询)</param>
/// <returns></returns>
public static List<T> GetPagers(int num, int page, T model)
{
List<T> tList = new List<T>();
string name = new T().GetType().Name;
PropertyInfo[] proList = model.GetType().GetProperties();
string sqlStr = "select top " + num + " * from " + name;
string whereStr = " ";
foreach (PropertyInfo pi in proList)
{
if (DbHelperSQL.IsPrimaryKey(pi.Name, name) == true)
{
sqlStr = sqlStr + " where " + pi.Name + " not in (select top (" + num + " * (" + page + "-1))" + pi.Name + " from " + name + " order by OrderDate desc)";
}
}
foreach (PropertyInfo pi in proList)
{
if (pi.GetValue(model, null) != null && DbHelperSQL.IsPrimaryKey(pi.Name, name) == false)
{
string piValue = pi.GetValue(model, null).ToString();
if (piValue != "False" && piValue != "0001/1/1 0:00:00" && piValue != "0")
{
whereStr += " and " + pi.Name + "='" + pi.GetValue(model, null).ToString() + "' order by OrderDate desc";
}
}
}
string sql = sqlStr + whereStr;
DataTable dt = DbHelperSQL.Query(sql).Tables[0];
foreach (DataRow dr in dt.Rows)
{
T t = new T();
PropertyInfo[] list = t.GetType().GetProperties();
foreach (PropertyInfo pi in list)
{
string piName = pi.Name;
if (dt.Columns.Contains(piName))
{
if (!pi.CanWrite) continue;
object value = dr[piName];
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
}
tList.Add(t);
}
return tList;
}