/// <summary>
/// 分页查询;函数中,存储过程参数含义见接口文档
/// </summary>
/// <param name="table_Name">表或视图名</param>
/// <param name="Fields">字段列表,“*”为全部字段</param>
/// <param name="limit_Condition">where条件(不用带where)</param>
/// <param name="order_By">排序关键字(不用带order by)</param>
/// <param name="order_Direction">查询顺序(升序asc或降序desc)</param>
/// <param name="page_Size">每页显示条数</param>
/// <param name="current_Page">当前页码</param>
/// <returns>返回一个数据集</returns>
public List<Model.Ppt> Select(string table_Name, string Fields, string limit_Condition, string order_By, string order_Direction, int page_Size, int current_Page)
{
SqlParameter[] para = new SqlParameter[7];
para[0] = new SqlParameter("@TableName", table_Name);
para[1] = new SqlParameter("@ReFieldsStr", Fields);
para[2] = new SqlParameter("@OrderString", order_By);
para[3] = new SqlParameter("@OrderDirection", order_Direction);
para[4] = new SqlParameter("@WhereString", limit_Condition);
para[5] = new SqlParameter("@PageSize", page_Size);
para[6] = new SqlParameter("@PageIndex ", current_Page);
List<Model.Ppt> list = new List<Model.Ppt>();
Model.Ppt model = new Model.Ppt();
int fieldNum = 18;
PropertyInfo[] infos = model.GetType().GetProperties();
string[] field = Fields.Split(',');
using (SqlDataReader reader = SQLHelper.ExecuteReader(conn, CommandType.StoredProcedure, "PROCE_PAGECHANGE", para))
{
while (reader.Read())
{
model = new Model.Ppt();
foreach (string fName in field)
{
for (int i = 0; i < fieldNum;i++ )
{
if ("*" == fName)
{
if (infos.PropertyType == Type.GetType("Systerm.String"))
{
if (DBNull.Value != reader[infos.Name])
infos.SetValue(model, (string)reader[infos.Name], null);
}
if (infos.PropertyType == Type.GetType("System.Int32"))
{
if (DBNull.Value != reader[infos.Name])
infos.SetValue(model, (int)reader[infos.Name], null);
}
if (infos.PropertyType == Type.GetType("System.Double"))
{
if (DBNull.Value != reader[infos.Name])
infos.SetValue(model, (double)reader[infos.Name], null);
}
if (infos.PropertyType == Type.GetType("System.Boolean"))
{
if (DBNull.Value != reader[infos.Name])
infos.SetValue(model, (bool)reader[infos.Name], null);
}
if (infos.PropertyType == Type.GetType("System.DateTime"))
{
if (DBNull.Value != reader[infos.Name])
infos.SetValue(model, (DateTime)reader[infos.Name], null);
}
}
else
{
if (infos.Name == fName)
{
if (infos.PropertyType == Type.GetType("Systerm.String"))
{
if (DBNull.Value!=reader[fName])
infos.SetValue(model, (string)reader[fName], null);
}
if (infos.PropertyType == Type.GetType("System.Int32"))
{
if (DBNull.Value != reader[fName])
infos.SetValue(model, (int)reader[fName], null);
}
if (infos.PropertyType == Type.GetType("System.Double"))
{
if (DBNull.Value != reader[fName])
infos.SetValue(model, (double)reader[fName], null);
}
if (infos.PropertyType == Type.GetType("System.Boolean"))
{
if (DBNull.Value != reader[fName])
infos.SetValue(model, (bool)reader[fName], null);
}
if (infos.PropertyType == Type.GetType("System.DateTime"))
{
if (DBNull.Value != reader[fName])
infos.SetValue(model, (DateTime)reader[fName], null);
}
}
}
}
}
list.Add(model);
}
}
return list;
}