c# DataTable和实体Model互相转换代码

根据反射将数据库查询结果Datatable,转换为对应的Model类实体对象 有时候需要将数据库获取的数据列表转换成对应的实体类对象集合,下面是个通用数据转换函数,运用了c#的反射机制,需要的可以参考,有不对的地方欢迎提出来。  using System.Reflection; public static List ConvertModel(DataTable dt) where T : new()         {             List  阅读详情

写代码的时候有些控件是直接DataTable,有的是直接绑定Model的,需要两者之间进行互转换

1.DataTable转为实体

   #region dataTable 转为实体
        public static List<T> TableToList<T>(DataTable dt) where T : class, new()
        {
            Type type = typeof(T);
            List<T> list = new List<T>();

            foreach (DataRow row in dt.Rows)
            {
                PropertyInfo[] properties = type.GetProperties();
                T model = new T();
                foreach (PropertyInfo p in properties)
                {
                    object value = row[p.Name];
                    if (value == DBNull.Value)
                    {
                        p.SetValue(model, "", null);
                    }
                    else
                    {
                        if (value is decimal)
                        {
                            p.SetValue(model, Convert.ToInt32(value), null);
                        }
                        else
                        {
                            p.SetValue(model, value, null);
                        }
                    }
                }
                list.Add(model);
            }
            return list;
        }
        #endregion

2.实体转为DataTable

 public static DataTable ListToDataTable<T>(List<T> items)
        {
            var tb = new DataTable(typeof(T).Name);

            PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

            foreach (PropertyInfo prop in props)
            {
                Type t = GetCoreType(prop.PropertyType);
                tb.Columns.Add(prop.Name, t);
            }

            foreach (T item in items)
            {
                var values = new object[props.Length];

                for (int i = 0; i < props.Length; i++)
                {
                    values[i] = props[i].GetValue(item, null);
                }

                tb.Rows.Add(values);
            }

            return tb;
        }

C#实现DataTable映射成Model的方法(附源码) 主要介绍了C#实现DataTable映射成Model的方法,以实例形式较为详细的分析了DataTable映射成Model的具体步骤与相关技巧,并附带了完整实例源码供读者下载,需要的朋友可以参考下 立即下载

相关推荐

C# DataTable与Model互转的示例代码

/// /// 实体转换辅助类 /// public class ModelConvertHelper where T : new() { /// /// List泛型转换DataTable. /// public DataTable ListToDataTable(List items) { var tb = new DataTable(typeof(T).Name); PropertyInfo[] props = typeof(T).GetPrope

【C#】实体类和DataTable之间相互转换,实体反射动态遍历列

这里我们只简单聊聊实体类和DataTable之间的相互转换,以及反射基本知识点。

小5聊的博客 6270

DESeq2差异分析结果不会看?用这个R脚本5分钟生成发表级火山图和热图

本文详细介绍了如何使用R语言快速可视化DESeq2差异分析结果,5分钟内生成可直接用于论文发表的火山图和热图。通过解析DESeq2数据结构、展示ggplot2和EnhancedVolcano包的绘图技巧,以及pheatmap包的热图定制方法,帮助研究者高效呈现差异表达基因分析结果。

weixin_30326515的博客 341

c# DataTable 和model 的泛型话,相互转换

【代码】c# DataTable 和model 的泛型话,相互转换。

773

别再傻傻分不清PBR和NPR了!从《原神》到《双城之战》,聊聊游戏里那些让你眼前一亮的渲染风格

本文深入解析了PBR(基于物理的渲染)与NPR(非真实感渲染)在游戏视觉风格中的应用差异,通过《原神》和《双城之战》的案例,展示了两种渲染技术如何创造出截然不同的艺术效果。从技术原理到实战案例,帮助读者理解如何根据项目需求选择合适的渲染风格。

weixin_30425949的博客 150

FPGA图像处理入门 ZYNQ7020 图像中值膨胀腐蚀滤波

图像处理的三种滤波 中值滤波应用较为广泛 综合膨胀和腐蚀可以实现边缘检测。

Coast_的博客 715

c# System.Data.DataTable转List<Model>

指定表名

oXueYuZhiYing的博客 557

fNIRS 公开数据集整理

关注“心仪脑”查看更多脑科学知识的分享。 关键词:数据整理、fNIRS 之前我们向大家推送了 Public Neuroscience Dataset 系列主题的第一期:《EEG公开数据集》,我们同时意识到大家对于神经科学公开数据集的需求。本期是该系列主题的第二期,我们在延续第一期初衷的基础上,整理了功能性近红外光谱(fNIRS)技术的公开数据集。 fNIRS 是一种非侵入性、便携且价格低廉的光学神经成像技术,它具有可观的空间和时间分辨率。因fNIRS技术问世较EEG晚了许多,所以应用此技术开展研究发.

psybrain的博客 4272

List<Model>对象转成DataTable

C#方式 static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { List<ModelList> l...

weixin_33774308的博客 351

【数据分享】2012-2022年全国及各城市POI(兴趣点)数据(超20G)

POI(一般作为Point of Interest的缩写,也有Point of Information的说法),通常称作兴趣点,泛指互联网电子地图中的点类数据,基本包含名称、地址、坐标、类别四个属性;随着互联网电子地图服务与LBS应用的普及,POI无论从概念范畴,还是从信息纵深都有了长足发展,互联网各个风口或火山口都和POI有一定关系,如O2O、电商、社交、互联网金融、共享经济等。

J_Giser的博客 2742

【模型实战】MiMo-VL-7B讲解与实战

维度成绩MMMU70.6(图像理解最难测试之一)VideoMME70.8(视频理解标杆)59.4(超越78B参数模型)56.1(超过专用GUI模型)Elo评分开源VLM排名第一(7B~72B)社区热度过去一个月下载超1,600次(RL+SFT)📌一句话概括MiMo-VL 是目前性能最强、推理最稳、体验最佳、生态最全的7B级开源视觉语言模型。

m0_47867638的博客 1200

DataTable与实体类互相转换

DataTable与实体类互相转换

笔记本 4944

Altium Designer应用技巧1: 功能模块的复用方法

Altium Designer应用技巧1: 功能模块的复用方法      我们在使用Altium Designer进行电路图设计时,常会遇到功能模块的复用问题,例如我们经常需要将12V以DC-DC的方式转换成5V,这在很多线路板上都会应用到。现在我们普通的做法是,每个板子都重新绘制一遍,像这样DC-DC的电路,很浪费时间。那么如何采用提高工作效率呢?我们可以采取Altium Desi

snmplink的博客 1万+

c#中实体类和DataTable之间相互转换,实体反射动态遍历列详解

通过反射,你可以加载和检查程序集的信息,包括类型、成员、属性等。请注意,上述示例中的 Person 类只是一个示例,你可以根据自己的需求创建自定义的实体类,并根据 DataTable 的列名称和类型匹配属性。为了将列定义为可为空类型,我们使用了 typeof(object) 来定义列的类型,这样可以允许任意的对象,并且可以在需要时将其设置为 DBNull.Value 来表示空值。请注意,上述示例中的实体类 Person 只是一个示例,你可以根据自己的需求创建自定义的实体类,并使用相应的属性和类型。

u011555996的博客 1833

thermal系列(5)-DTSI中配置Thermal

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.youkuaiyun.com/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录thermal系列目录DTSI中配置ThermalDTSI节点类型描述CPU0的配置举例CPU核hot-plugging举例修改热缓解阈值DTSI的node中带有tracks-lowDTSI中关闭某个Thermal Zones thermal系列目录 thermal系列(1)-引言部分 thermal.

fulinux的博客 1232

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

C# DataTable与实体类(model)相互转换

using System; using System.Collections.Generic; using System.Data; using System.Reflection; namespace PerformSystem.Tools { public class ModelTool { /// <summary> /// DataTable转为List泛型 /// </summary> //

Drumsticks的博客 4220

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# Json、datatable、model互相转换

datatable转json 方法1 使用Json.Net DLL (Newtonsoft) 这个方法中要添加Json.Net DLL引用,我们可以从Newtonsoft下载Json.Net DLL(也可以在我的资源中下载),再导入命名空间,代码如下: using Newtonsoft.Json;//导入命名空间 PlanRecordManager pr = ne...

你要明白,任何问题都不是孤立存在的,一定有人曾经遇到过,并且已经有更好的解决办法了,只是我还不知道。我不应该在黑暗中独自前行,去重新发明轮子,也许我的顿悟,只是别人的基本功!我应该要站在巨人的肩膀上,学习更成熟的经验和方法,然后再来解决这个问题 1290

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【C#】DataTable转换为实体集

Model字段名称必须与数据库字段名称相同 private List<T> TableToList<T>(DataTable dt) where T : class, new() { Type type = typeof(T); List<T> list = new List<T>(); foreach (DataRow...

GreAmbWang的博客 1242

DataTable转换为Model

在MVC或者EF等框架下,SQL查询的数据会直接转换成相应的Model(模型),有时我们通过其他方式得到一个DataTable,比如直接执行SQL或者代码内部产生,这时为了能更好的与其他代码结合,可能会需要转换成相应的Model,那我们要怎么处理呢? 只有一个DataTable,要转换成模型,很自然的想到,利用反射。因为只有反射才能得到相应的类型,得到相应的属性。那要反射,我们首先要得到的就是程

学而时习之 2727

C#把 DataTable转换为Model实体

public static List<T> GetModelFromDB<T>( DataTable dt ) { List<T> data = new List<T>(); foreach (DataRow row in dt.Rows) {...

weixin_30347009的博客 1884

c# 反射得到实体类的字段名称和值,DataTable转List<T>

/// <summary> /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="t">实例化</param&g...

diehe5608的博客 466

C# 一行代码实现 DataTable转实体模型 DataTable 转换 Model

引用 Dino.DataTableExtension 组件,让数据表转换成实体模型变的非常简单, 一行代码就完成了转换。 废话少说, 上代码: using System; using System.Data; using Test.TestModels; using Dino.DataTableExtension; namespace Test { public class Te...

moonncat的博客 1797

XML,Model,DataTable 相互转换

接口: interface ISerialize { /// <summary> /// xml 转换为 model /// </summary> /// <typeparam name="T"></typeparam> /// <param name...

qq_41515170的博客 190

C#,.net将DataTable转为对应的Model实体类

代码类 public partial class ZConvert { /// <summary> /// 转换 DataTable 对象为 IList 对象 /// </summary> /// <param name="datas">数据集合</param> /// <returns>数组对象</returns> public

qq_41545233的博客 1367

DataTable 转换成 实体类model List<t>

using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Utils { public class Dat...

zq爱生活爱代码的博客 278
上一篇: .net MVC 中Controller 比较有用的几个方法
下一篇: c# 中WebAPI的简单使用
RunCodeAjax
博客等级 码龄6年 2粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值