zoukankan      html  css  js  c++  java
  • 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, null, null);

    }
    l.Add(model);
    }

    return l;

    }

    /// <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;
    }

  • 相关阅读:
    领料单取整
    财务应付金额对不上的
    销售订单计算交期
    辅助单位启用
    K3CLOUD日志目录
    QLIKVIEW-日期格式,数字格式写法
    MRP运算报错-清除预留
    整单折扣后 财务、暂估应付价税合计对不上的问题处理
    BZOJ 2976: [Poi2002]出圈游戏 Excrt+set
    BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
  • 原文地址:https://www.cnblogs.com/yiwuya/p/3018830.html
Copyright © 2011-2022 走看看