将datatable 里的数据按照理想的顺序倒排 ,获取datetable中的前N条数据,将datatable转换为model

DataView dv = aa.DefaultView;  //复制一个datatable
dv.Sort = "FId Desc";  //将字段列倒叙
aa = dv.ToTable();//赋值

 

 

获取datatble中的前N条数据

 

/// <summary> 
/// 获取DataTable前几条数据 
/// </summary> 
/// <param name="TopItem">前N条数据</param> 
/// <param name="oDT">源DataTable</param> 
/// <returns></returns>

public DataTable DtSelectTop(int TopItem, DataTable oDT)
{
if (oDT.Rows.Count < TopItem) return oDT;

DataTable NewTable = oDT.Clone();
DataRow[] rows = oDT.Select("1=1");
for (int i = 0; i < TopItem; i++)
{
NewTable.ImportRow((DataRow)rows[i]);
}
return NewTable;
}

 

将datatable转换为Model

        public static T RowConvertModel<T>(DataRow row)
        {

            T t = default(T);
            t = Activator.CreateInstance<T>();
            PropertyInfo[] ps = t.GetType().GetProperties();
            foreach (var item in ps)
            {
                if (row.Table.Columns.Contains(item.Name))
                {
                    object v = row[item.Name];
                    if (v.GetType() == typeof(System.DBNull))
                        v = null;
                    item.SetValue(t, v, null);
                }
            }
            return t;

 

posted on 2020-10-19 14:13  透明的鱼!  阅读(427)  评论(0)    收藏  举报

导航