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; 
    }
    复制代码
  • 相关阅读:
    WP8.1 UI 编程 四、图形
    分治法 全排列问题的一个Java实现
    合并排序算法时间复杂度分析
    js如何实现复制粘贴功能
    关于<meta name="applicable-device"content="pc">
    ready
    css文字强制大写输入
    关于input,button标签在苹果手机上显示阴影解决办法
    【C#】中用if判断值是否是否为空
    视频格式MP4,需要转码
  • 原文地址:https://www.cnblogs.com/wdw31210/p/3359432.html
Copyright © 2011-2022 走看看