DataTable所有数据转换成实体类列表

需要注意:此方法必须新建一个实体类文件,刚好对应你的DataTable所有列名字

 1  /// <summary>
 2  /// DataTable所有数据转换成实体类列表
 3  /// </summary>
 4  /// <typeparam name="T">实体类</typeparam>
 5  /// <param name="dt">DataTable</param>
 6  /// <returns>返回实体类列表</returns>
 7  public static List<T> DataTableToList<T>(DataTable dt) where T : new()
 8  {
 9      if (dt == null || dt.Rows.Count == 0)
10      {
11          return new List<T>();
12      }
13      // 实例化实体类和列表
14      List<T> list = new List<T>();
15      // 获取所有列
16      DataColumnCollection columns = dt.Columns;
17      foreach (DataRow dr in dt.Rows)
18      {
19          T t = new T();
20          // 获得实体类的所有公共属性
21          PropertyInfo[] propertys = t.GetType().GetProperties();
22 
23          //循环比对且赋值
24          foreach (PropertyInfo pi in propertys)
25          {
26              string name = pi.Name;
27              Type targetType = pi.PropertyType;
28              Type convertType = targetType;
29              // 检查DataTable是否包含此列    
30              if (columns.Contains(name))
31              {
32                  if (!pi.CanWrite) continue;
33 
34                  object value = dr[name];
35                  if (targetType.IsGenericType && targetType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
36                  {
37                      //可空类型
38                      NullableConverter nullableConverter = new NullableConverter(targetType);
39                      convertType = nullableConverter.UnderlyingType;
40                  }
41                  if (!string.IsNullOrEmpty(convertType.FullName) && !string.IsNullOrEmpty(value?.ToString()))
42                  {
43                      value = Convert.ChangeType(value, convertType);
44                  }
45                  if (value != DBNull.Value)
46                  {
47                      //是否需要转化
48                      //if (value is int || value is float || value is decimal || value is double)
49                      //{
50                      //    p.SetValue(t, value.ToString(), null);
51                      //}
52                      //else
53                      //{
54                      //    p.SetValue(t, value, null);
55                      //}
56                      pi.SetValue(t, value, null);
57                  }
58              }
59          }
60          list.Add(t);
61      }
62      return list;
63  }

转载请注明出处,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/949793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode|700二叉搜索树中的搜索|938二叉搜索树的范围和|530二叉搜索树的最小绝对差

700二叉搜索树中的搜索带裁剪的前序遍历:搜索使用前序遍历,根据BST的左子树<根<右子树的特性,可以裁剪掉左右子树。 938二叉搜索树的范围和依旧带裁剪的前序遍历:搜索使用前序遍历,根据BST的左子树<根&l…

2025年合同纠纷律师联系电话推荐:靠谱律师一次找全

在商业往来日益频繁的今天,合同既是合作桥梁,也是风险源头。条款理解偏差、履行瑕疵、不可抗力解释、违约赔偿计算等细节,稍有疏忽就可能引发高额损失。2025年,企业主、采购负责人、创业者乃至普通消费者,都可能在…

2025年合同纠纷律师联系电话推荐:权威律师名单

在商业往来日益频繁的今天,合同既是合作桥梁,也是风险源头。条款理解偏差、履行瑕疵、不可抗力认定、违约金计算、证据固定等环节稍有疏忽,就可能引发高额索赔甚至连锁诉讼。2025年,企业主、投资人、个体商户乃至普…

2025年合同纠纷律师联系电话推荐:高效沟通赢在起点

在商事往来日益频繁的2025年,合同文本越来越厚,违约形态却越来越新。一次延迟交货、一条模糊的质量条款,就可能让公司现金流瞬间紧绷。当协商陷入僵局,企业主、采购总监、甚至个人创业者,都急需一位能在电话那头迅…

2025年10月绩效管理咨询公司榜单:五强落地模式与口碑盘点

“绩效方案年年做,年底复盘仍找不到抓手”——这是不少成长型制造企业在10月预算评审会上共同的叹息。政策层面,《“十四五”就业促进规划》明确提出“健全以绩效为导向的薪酬分配制度”,国资委也要求国有及国有控股…

学习 跟“龙哥”学C语言编程 [李志龙].pdf

学习 跟“龙哥”学C语言编程 [李志龙].pdfPosted on 2025-10-29 12:34 锦喵卫指挥使 阅读(0) 评论(0) 收藏 举报12:31 2025/10/29 越来越多的高校在录取研究生时开始采用上机考试的形式来考查学生的动手编程能力,…

2025年10月绩效管理咨询公司榜单:五强对比与落地指南 。

正在升级产线,年底要冲利润,老板把“人均产值提升20%”的硬指标压下来,HR却连绩效指标怎么拆到车间都不清楚——这大概是10月制造型企业最熟悉的场景。绩效改革一旦踩空,不仅奖金发得员工怨声载道,战略也会跟着落…

2025年10月绩效管理咨询公司推荐:实力榜单与选型指引

正在升级产线、准备股改或冲刺IPO的制造型企业,常把“绩效管理”列为年度头号管理工程:老板担心战略落不了地,HR头痛指标难分解,财务焦虑激励成本失控。工信部2024年度中小企业管理诊断报告显示,73%的受访企业认为…

2025年10月精益制造咨询公司推荐:价值榜综合评测

如果您正负责一家制造企业的运营,大概率会遇到这些场景:订单交付周期被客户压缩、原材料成本波动、现场浪费一眼可见却无从下手、数字化投资迟迟不见回报。工信部2024年调研显示,60%以上中小制造企业产能利用率低于…

2025年10月智能工厂规划咨询公司推荐:权威评测排行

如果您正负责一座新工厂的可行性研究,或者老产线被“多品种、小批量、交付急”逼得喘不过气,您大概率会同时面对三类难题:一是缺乏既懂精益又懂数字化的“双语”团队,二是担心规划方案落地后指标不升反降,三是担心…

2025年10月智能工厂规划咨询公司推荐:五强排行与选择指南

如果您正在为新产线落地、老厂升级或“灯塔工厂”申报寻找外脑,大概率会陷入三重焦虑:一是概念太多,数字孪生、精益布局、柔性产线听起来相似却成本差异巨大;二是案例真假难辨,各家都宣称拥有“灯塔”经验,却鲜少…

2025年10月智能工厂规划咨询公司推荐:品牌榜横向评测

如果您正负责一座新工厂的可研论证,或是老产线面临“多品种、小批量”订单冲击,急需在12个月内完成数字化升级,您大概率会被同一串问题困扰:预算有限,如何锁定既懂精益又懂自动化的“外脑”?政府补贴窗口缩短,怎…

热管理控制器TMS HiL解决方案

热管理控制器(Thermal Management System,简称TMS)作为新能源车辆整车热管理系统的控制单元,具有电池热管理、电驱热管理、乘员舱热管理、故障诊断等功能。热管理控制器确保车辆在各种工况以及极端环境下,车辆的热…

2025年10月精益制造咨询公司推荐:实力榜单深度评测

2025年10月,制造业进入全年冲刺阶段,订单交付、库存周转、成本压力集中爆发,企业主普遍面临“现场乱、交付慢、利润薄”的三重夹击。工信部《制造业质量管理蓝皮书》指出,约六成中小工厂产能利用率不足75%,现场浪…

2025年10月绩效管理咨询公司榜单:五强对比与落地指南

如果您正在寻找“能真正把战略落到员工行为、让指标与奖金联动、又能陪伴落地”的绩效管理咨询公司,大概率已经试过以下场景:内部HR团队缺乏战略解码经验,考核表年年改却不见业绩提升;预算有限,担心高价买来PPT无…

2025年10月智能工厂规划咨询公司推荐:精选榜单一键查

把工厂升级为“会思考、会迭代”的智能体,是多数制造企业在2025年最焦虑也最想押注的决策。产线要不要推倒重来?老设备如何接入新系统?投资回报周期到底多久?一旦选错服务商,轻则千万预算打水漂,重则错失订单窗口…

2025年10月北京商业工装设计公司排行榜:基于真实数据的专业推荐

随着北京商业环境的持续升级,企业对办公空间设计的需求日益精细化。作为企业决策者或项目负责人,您可能正在寻找能够将商业理念转化为实体空间的专业合作伙伴。在选择商业工装设计公司时,您需要考虑的不仅是设计创意…

【科普系列】TCP 协议:数据传输的“可靠卫士”

在智能汽车加速迈入数字化的今天,车载以太网早已不是简单的 “数据通道”,而是像纵横交错的城市快速路网络,日夜承载着自动驾驶的决策指令、智能座舱的影音交互数据、云端互联的实时路况信息 —— 这些数据洪流如同…

2025年10月北京商业工装设计公司推荐榜单:权威评测与选择指南

作为企业决策者或项目负责人,选择一家合适的商业工装设计公司往往关乎办公环境的效能提升与品牌形象塑造。在北京这样的一线城市,商业工装设计市场呈现专业化、细分化的趋势,企业用户通常面临资质参差不齐、服务标准…

2025年10月北京商业工装设计公司评价指南:权威排行与选择建议

作为企业负责人或项目管理者,当您需要为办公空间、商业场所进行装修改造时,选择一家可靠的商业工装设计公司至关重要。北京作为国际化大都市,商业工装设计市场呈现专业化、细分化的趋势。根据行业权威数据显示,202…