zoukankan      html  css  js  c++  java
  • (转)DATATABLE(DATASET)与实体类之间的互转.

    转自:http://www.cnblogs.com/zzyyll2/archive/2010/07/20/1781649.html

    dataset和实体类 之间的转换

    //dataset转实体类 

    复制代码
    代码
    public static IList<T> FillModel(DataSet ds) 

    List
    <T> l = new List<T>(); 
    T model 
    = default(T);

    if (ds.Tables[0].Columns[0].ColumnName == "rowId"

    ds.Tables[
    0].Columns.Remove("rowId"); 
    }

     

    foreach (DataRow dr in ds.Tables[0].Rows) 
    {


    model 
    = Activator.CreateInstance<T>();

    foreach (DataColumn dc in dr.Table.Columns) 
    {

    PropertyInfo pi 
    = model.GetType().GetProperty(dc.ColumnName); 
    if (dr[dc.ColumnName] != DBNull.Value) 
    pi.SetValue(model, dr[dc.ColumnName], 
    null); 
    else 
    pi.SetValue(model, 
    nullnull);


    l.Add(model); 
    }

    return l;


    }

    复制代码

    将实体类转换成DataTable

    复制代码
    代码


    /// <summary> 
    /// 将实体类转换成DataTable 
    /// </summary> 
    /// <typeparam name="T"></typeparam> 
    /// <param name="i_objlist"></param> 
    /// <returns></returns> 
    public static DataTable Fill<T>(IList<T> objlist) 

    if (objlist == null || objlist.Count <= 0

    return null

    DataTable dt 
    = new DataTable(typeof(T).Name); 
    DataColumn column; 
    DataRow row;

    System.Reflection.PropertyInfo[] myPropertyInfo 
    = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

    foreach (T t in objlist) 

    if (t == null

    continue
    }

    row 
    = dt.NewRow();

    for (int i = 0, j = myPropertyInfo.Length; i < j; i++

    System.Reflection.PropertyInfo pi 
    = myPropertyInfo[i];

    string name = pi.Name;

    if (dt.Columns[name] == null

    column 
    = new DataColumn(name, pi.PropertyType); 
    dt.Columns.Add(column); 
    }

    row[name] 
    = pi.GetValue(t, null); 
    }

    dt.Rows.Add(row); 

    return dt; 
    }
    复制代码
  • 相关阅读:
    react的50个面试题
    什么是宏队列跟微队列
    宏队列与微队列
    数组都有哪些方法
    vuex 跟 vue属性
    高阶组件
    如何创建视图簇(View cluster)-SE54/SM34
    ◆◆0如何从维护视图(Maintenace view)中取数据-[VIEW_GET_DATA]
    ◆◆0如何在SM30维护表时自动写入表字段的默认值-事件(EVENT)
    ◆◆0SAP Query 操作教程
  • 原文地址:https://www.cnblogs.com/wdw31210/p/3359432.html
Copyright © 2011-2022 走看看