zoukankan      html  css  js  c++  java
  • DataTable转换实体类

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.OracleClient;
    using System.Configuration;
    using System.Text.RegularExpressions;
    using DataAccess;
    using System.Diagnostics;
    using System.Reflection;
    namespace Business
    {
    /// <summary>
    /// 实体类转换
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class CModelTableFill<T> where T : new()
    {
    /// <summary>
    /// 填充多个实体类对象
    /// </summary>
    /// <param name="dt">数据集</param>
    /// <returns>实体类</returns>
    public List<T> FillModel(DataTable dt)
    {
    if (dt == null || dt.Rows.Count == 0)
    {
    return null;
    }
    T t = new T();
    List<T> modelList = new List<T>();
    PropertyInfo[] arrayInfo = t.GetType().GetProperties();

    foreach (DataRow itemRow in dt.Rows)
    {
    T model = new T();
    foreach (DataColumn itemColumn in dt.Columns)
    {
    foreach (PropertyInfo info in arrayInfo)
    {
    if (info.Name.ToUpper() == itemColumn.ColumnName)
    {
    if (itemRow[itemColumn.ColumnName] != DBNull.Value)
    {
    info.SetValue(model, itemRow[itemColumn.ColumnName].ToString(), null);
    }
    }
    }
    }
    modelList.Add(model);
    }
    return modelList;
    }
    /// <summary>
    /// 填充一个实体类对象
    /// </summary>
    /// <param name="dt">数据集</param>
    /// <returns>实体类</returns>
    public T FillModelRow(DataTable dt)
    {
    if (dt == null || dt.Rows.Count == 0)
    {
    return default(T);
    }
    T model = new T();
    PropertyInfo[] arrayInfo = model.GetType().GetProperties();
    for (int i = 0; i < dt.Columns.Count; i++)
    {
    foreach (PropertyInfo info in arrayInfo)
    {
    if (info.Name.ToUpper() == dt.Columns[i].ColumnName)
    {
    if (dt.Rows[0][i] != DBNull.Value)
    {
    info.SetValue(model, dt.Rows[0][i].ToString(), null);
    break;
    }
    }
    }
    }
    return model;
    }
    }
    }

  • 相关阅读:
    小学数学计算出题小程序(Excel版)
    网页自动化测试技术---SeleniumBasic(VBA网页外挂)
    ODBC链接数据源(PQ学习)
    WPF动态绑定矢量图标
    由数据转为树杈的js 和由一个子节点的id获取所有的父类的id
    面试上机题目--采用vue实现以下页面效果
    html前端上机面试题
    在vue项目中的跨域解决办法
    vue-quill-editor富文本编辑器使用
    vue项目eslint配置 以及 解释
  • 原文地址:https://www.cnblogs.com/changeMe/p/4421427.html
Copyright © 2011-2022 走看看