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

  • 相关阅读:
    SAP UI5应用和Hybris Commerce的国际化(internationalization)支持
    PHP获取目录下面所有文件和文件夹
    php利用smtp类轻松的发送电子邮件
    Redis和Memcached的一些区别
    redis命令大全参考手册
    redis类与用法
    公共类属性使用
    php 非对称加密解密类
    RSA密钥生成与使用
    Centos下安装Lamp和vsftpd、redis
  • 原文地址:https://www.cnblogs.com/yiwuya/p/3018830.html
Copyright © 2011-2022 走看看