zoukankan      html  css  js  c++  java
  • DataTable转换为List<Model>的通用类

    DataTableToList 源码
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Reflection;

    namespace NCL.Data
    {
    ///<summary>
    /// 实体转换辅助类
    ///</summary>
    public class ModelConvertHelper<T> where T : new()
    {
    public static IList<T> ConvertToModel(DataTable dt)
    {
    // 定义集合
    IList<T> ts = new List<T>();

    // 获得此模型的类型
    Type type = typeof(T);

    string tempName = "";

    foreach (DataRow dr in dt.Rows)
    {
    T t = new T();

    // 获得此模型的公共属性
    PropertyInfo[] propertys = t.GetType().GetProperties();

    foreach (PropertyInfo pi in propertys)
    {
    tempName = pi.Name;

    // 检查DataTable是否包含此列
    if (dt.Columns.Contains(tempName))
    {
    // 判断此属性是否有Setter
    if (!pi.CanWrite) continue;

    object value = dr[tempName];
    if (value != DBNull.Value)
    pi.SetValue(t, value, null);
    }
    }

    ts.Add(t);
    }

    return ts;

    }
    }
    }

    使用方式:

    // 获得查询结果
    DataTable dt = DbHelper.ExecuteDataTable(...);
    // 把DataTable转换为IList<UserInfo>
    IList<UserInfo> users = ModelConvertHelper<UserInfo>.ConvertToModel(dt);



  • 相关阅读:
    冲刺二6
    冲刺二5
    6月1日团队开发日志
    5月31日团队开发日志
    5月30日团队开发日志
    5月29日团队开发日志
    5月28日团队开发日志
    5月27日团队开发日志
    5月26日团队开发日志
    5月25日团队开发日志
  • 原文地址:https://www.cnblogs.com/ShenJH/p/2232361.html
Copyright © 2011-2022 走看看