C# DataRow 转 Model 对象 再也不用一个字段一个字段去写了

/*************************************************************************************** 文 件 名:   DalUtiles.cs* 描    述: * * 版    本:  V1.0* 创 建 者:  JackieZheng* 创建时间:  2022/10/16 下午 05:42* ======================================* 历史更新记录* 版本:V          修改时间:         修改人:* 修改内容:* ======================================
*************************************************************************************/
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DBUtility;
using Model;
using System.Configuration;namespace DAL
{public class DalUtiles{/// <summary>/// DataRow 转 Model 对象/// </summary>/// <typeparam name="T"></typeparam>/// <param name="row"></param>/// <returns></returns>public static T DataRow2Model<T>(DataRow row){T t = System.Activator.CreateInstance<T>();var ModelType = typeof(T);var Properties = ModelType.GetProperties();foreach (var Propertie in Properties){if (Propertie.CanRead && Propertie.CanWrite){if (row.Table.Columns.Contains(Propertie.Name) && row[Propertie.Name] != DBNull.Value){Propertie.SetValue(t, row[Propertie.Name], null);}else{Propertie.SetValue(t, null);}}}return t;}/// <summary>/// DataTable 转 Modle List/// </summary>/// <typeparam name="T"></typeparam>/// <param name="table"></param>/// <returns></returns>public static List<T> DataTable2ModelList<T>(DataTable table){var list = new List<T>();foreach (DataRow row in table.Rows){list.Add(DataRow2Model<T>(row));}return list;}}
}

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

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

相关文章

pyqt2_官网教程

sklearn实战-乳腺癌细胞数据挖掘&#xff08;博主亲自录制视频&#xff09; https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare Articles You can find a collection of P…

VUE页面发布后显示空白 原因之一及解决办法

<template><div><div></div></div><el-dialog></el-dialog> </template> 改为&#xff1a; <template><div><div></div><el-dialog></el-dialog></div> </template> …

Windows10安装WSL2和Ubuntu的过程

因为在Windows10环境中安装了2个相同的包导致冲突&#xff0c;所以想到了通过WSL2Docker的方式进行编程开发。因为Docker Desktop直接安装就行了&#xff0c;不做介绍。本文主要介绍WSL2和Ubuntu的安装过程。一.安装前的环境准备1.升级Windows系统因为低于某个版本号不支持WSL2…

Hyper-V数据文件丢失解决方案(有图有真相)

一、Hyper-V虚拟化故障概述 1、虚拟机环境故障虚拟化环境为ESXI虚拟化服务器&#xff0c;虚拟机环境&#xff0c;虚拟机的硬盘文件和配置文件放在北京某服务器托管公司的DELL MD3200存储中&#xff08;存储由5块容量为600G的硬盘组成raid磁盘阵列&#xff09;。该存储中4块硬盘…

关于bedtools merge 功能中sort 命令的解释

Bedtools 是一个很好的用来处理区间的工具&#xff0c;很多时候用这个底层语言编写的小工具比自己写的脚本运行快很多&#xff0c;但是这个工具中的某些功能对输入文件有一定的要求&#xff0c;比如说里面的一个merge函数&#xff0c;这是里面的一个note&#xff1a; Note&…

cocos2dx 3.x(屏幕截图的两种方法)

【RenderTexture】 RenderTexture这个动态纹理类&#xff0c;顾名思义就是可以动态创建纹理图片。 屏幕截图主要步骤&#xff1a; > 开始截图&#xff1a;render->begin(); > 遍历场景&#xff1a;scene->visit(); > 结束截图&#xff1a;render->end(); >…

SQL小技巧,动态输出本周各天日期

SET DATEFIRST 1; --设置周一为每周第一天 SELECT DATEFIRST;WITH w AS(SELECTCONVERT(varchar(10),T.[Date],120) AS [Date],DATENAME(weekday, T.[Date] ) AS [Week],DATEPART(WK, T.[Date]) AS WeekIndexFROM(SELECTDATEADD(DAY, number, DATEADD(wk, DATEDIFF(wk, 0, get…

开源的价值观与文化的传递

| 作者&#xff1a;Sharan Foga, Apache 软件基金会董事&#xff08;2021 届、2022 届&#xff09;&#xff0c;曾亲身来到 2019 中国开源年会&#xff08;COSCon19&#xff09;以本文内容发表主题演讲。| 翻译&#xff1a;刘天栋.Ted&#xff0c;徐红伟.stronghx| 审阅&#x…

用python来更改小伙伴的windows开机密码,不给10块不给开机

今天教大家用python脚本来控制小伙伴们windows电脑的开机密码。没错就是神不知鬼不觉&#xff0c;用random()随机生成的密码&#xff0c;只有你自己知道哦~ 代码呢分两部分&#xff0c;一部分是client端跟server端两个。你只需要想办法让小伙伴运行你的client端脚本就OK啦。不过…

Vue中@click.stop与@click.prevent

Vue中click.stop与click.prevent 一、click.stop 问题&#xff1a;父元素中添加了一个click事件&#xff0c;其下面的子元素中也添加了click事件&#xff0c;此时&#xff0c;我想点击子元素获取子元素的点击事件&#xff0c;但却触发的是父元素的事件&#xff1a; <view cl…

ES6 promise

如何使用promise对象? 参考连接&#xff1a; http://es6.ruanyifeng.com/#docs/promise 转载于:https://www.cnblogs.com/taoshengyijiuai/p/6963279.html

巧用ThreadPool.QueueUserWorkItem实现接口二次调用

背景最近做了个项目有个接口涉及到批量计算的问题&#xff0c;耗时比较长。大家都知道&#xff0c;接口等待时间太长肯定是不可取的。那么只能做异步处理了&#xff1b;但是问题来了这个项目没有什么消息队列、redis之类的使用&#xff0c;本着怎么简单怎么来的思路&#xff0c…

el-upload 防止选择上传重复文件

<el-uploadref"uploadRef"multipledragaction"":auto-upload"false":file-list"msgPara.MsgFileList":on-change"handleFileChanged" ><el-button type"primary">选择文件</el-button> </el…

jmete 学习--基础之名词解释

一.jmeter 体系结构 1.名词解释 元件 jmemter工具菜单中的一个子菜单&#xff0c;如http请求&#xff0c;事务控制器等&#xff0c;就是一个元件。 组件 一组元件的集合&#xff0c;比如逻辑控制器中有事务控制器&#xff0c;仅一次控制器等&#xff0c;这些都是hi元件&#x…

Testing - 软件测试知识梳理 - 自动化测试

软件开发的过程是一个持续集成和改进的过程&#xff0c;而每一次的改进都可能引进新bug,因此当软件的一部&#xff0c;或者全部修改时&#xff0c;都需要对软件产品重新进行测试。 其目的是要验证修改后的产品是符合需求的&#xff0c;而当没有自动化测试代码时&#xff0c;往往…

Virtual script not found, may missing <script lang=“ts“> / “allowJs“: true / jsconfig.json.volar

解决办法&#xff1a; 在 jsconfig.json 配置文件中设置 "allowJs": true 如果没有jsconfig.json文件&#xff0c;直接在项目要目录创建一个&#xff0c;添加如下配置内容即可&#xff1a; /** Title: This is a file for ……* Author: JackieZheng* Date: 2022…

协鑫集成“熄灯工厂”装上ET工业大脑,验证订单命中率可提高3.99%

4月26日的云栖大会南京峰会&#xff0c;协鑫集成宣布&#xff0c;与阿里云ET工业大脑合作后&#xff0c;通过人工智能验证的订单命中率可提高3.99%。 协鑫集成是全球一线组件制造商&#xff0c;积极致力于推进自主创新与智能制造&#xff0c;综合运用信息通讯、物联网、大数据决…

pip install mysql-connector 安装出错

一、MySQL Connector/Python 2.2.3 的变化&#xff1a; 之前 mysql 官方说MySQL Connector/Python 是纯python语言写的&#xff0c;但是呢&#xff01; 这个问题在2.2.3中变天了&#xff1b; 以下是MySQL Connector/Python 2.2.3 是变更记录 Changes in MySQL Connector/Python…

2022世界传感器大会 | 龙芯中科发布龙芯2K0500多功能SoC芯片及解决方案

8月21日&#xff0c;由工业和信息化部、中国科学技术协会、河南省人民政府共同主办的2022世界传感器大会在郑州开幕&#xff0c;众多诺奖、图灵奖获得者、海内外院士和专家学者出席&#xff0c;全球传感器领域最具影响力的相关企业参加。龙芯中科董事长胡伟武在大会开幕式发表主…

Vue3 配置config文件,打包后随意修改配置,无需重新打包和重启

在public目录创建config.json文件&#xff0c;名字随便起。 {"AppVersion": "1.0","AppTitle": "这里是程序名称" } 修改AppTitle&#xff1a; {"AppVersion": "1.0","AppTitle": "这里是修改后的…