反射赋值

目前例子为NPOI Excel导入 入库时调用

 var file = file1.PostedFile.InputStream;var fileExt = System.IO.Path.GetExtension(file1.FileName);IWorkbook workbook;if (fileExt == ".xlsx")workbook = new XSSFWorkbook(file);elseworkbook = new HSSFWorkbook(file);DB.DBContext db = new DB.DBContext();List<DB.Entity.dt_orders> list_orders = new List<DB.Entity.dt_orders>();#region 订单记录var sheet_order = workbook.GetSheet("订单记录");if (sheet_order != null){List<string> list_hread = new List<string>();//获取Excel的最大行数int rowsCount = sheet_order.PhysicalNumberOfRows;int colsCount = sheet_order.GetRow(1).PhysicalNumberOfCells;//获取字段for (int i = 0; i < colsCount; i++){list_hread.Add(sheet_order.GetRow(1).GetCell(i).ToString());}//数据填充for (int x = 2; x < rowsCount; x++){var model_order = new DB.Entity.dt_orders();var row = sheet_order.GetRow(x);SetValue(model_order, row, list_hread);list_orders.Add(model_order);}//过滤掉已有的订单var list_ordersno = list_orders.Select(d => d.order_no).ToList();var dt_list_ordersno = db.dt_orders.Where(d => list_ordersno.Contains(d.order_no)).Select(d => d.order_no).ToList();list_orders.RemoveAll(d => dt_list_ordersno.Contains(d.order_no));}#endregion

 

/// <summary>/// 反射赋值/// </summary>/// <typeparam name="T"></typeparam>/// <param name="model"></param>/// <param name="row"></param>/// <param name="list_hread"></param>private void SetValue<T>(T model, IRow row, List<string> list_hread){System.Reflection.PropertyInfo[] myPropertyInfo = model.GetType().GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance);for (int i = 0; i < list_hread.Count; i++){var hread = list_hread[i];var pi = model.GetType().GetProperty(hread);               try{var value = Convert.ChangeType((object)row.GetCell(i).ToString(), (Nullable.GetUnderlyingType(pi.PropertyType) ?? pi.PropertyType));pi.SetValue(model, value, null);}catch (Exception ex){pi.SetValue(model, null, null);}}}

 

转载于:https://www.cnblogs.com/OleRookie/p/10070036.html

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

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

相关文章

基于PCA(主成分分析)的人脸识别

代码下载&#xff1a;基于PCA&#xff08;主成分分析&#xff09;的人脸识别 人脸识别是一个有监督学习过程&#xff0c;首先利用训练集构造一个人脸模型&#xff0c;然后将测试集与训练集进行匹配&#xff0c;找到与之对应的训练集头像。最容易的方式是直接利用欧式距离计算测…

从BMW Vision iNEXT 看宝马如何进军自动驾驶

安全很重要&#xff0c;空间也要很大&#xff0c;砍掉大量物理按键&#xff0c;内饰材料要环保&#xff0c;还要提供自动和主动两套驾驶方案。这些描述仅是BMW Vision iNEXT&#xff08;下称Vision iNEXT&#xff09;概念车的设计之冰山一角。 一款概念车当然无法完全代表未来…

CSS浮动(二)---Float

重新认识float 2.1. 误解和“误用” 既然提到“误用”&#xff0c;各位看官就此想想&#xff0c;自己平日是怎么使用float的&#xff1f;另外&#xff0c;既然“误用”加了引号&#xff0c;就说明这样的使用并不是真正的误用&#xff0c;而是误打误撞使用之后&#xff0c;带…

Hadoop0.20.2版本在Ubuntu下安装和配置

1、安装JDK   &#xff08;1&#xff09;下载安装JDK&#xff1a;确保计算机联网之后命令行输入下面命令安装JDK   sudo apt-get install sun-java6-jdk   &#xff08;2&#xff09;配置计算机Java环境&#xff1a;打开/etc/profile&#xff0c;在文件最后输入下面内容 …

云原生生态周报 Vol. 2

业界要闻 Kubernetes External Secrets 近日&#xff0c;世界上最大的域名托管公司 Godaddy公司&#xff0c;正式宣布并详细解读了其开源的K8s外部 Secrets 管理项目&#xff1a; Kubernetes External Secrets&#xff0c;简称KES。这个项目定义了ExternalSecrets API&#xff…

centos 7新机使用前操作

关闭防火墙 systemctl stop firewalld&#xff08;停服务&#xff09; systemctl status firewalld&#xff08;看状态&#xff09; systemctl disable firewalld.service &#xff08;永久关闭&#xff09; selinux getenforce&#xff08;查状态&#xff09; vi /etc/selinux…

ubuntu10.04+hadoop0.20.2平台配置(完全分布式模式)

配置环境及有关工具&#xff1a;ubuntu10.04 、hadoop0.20.2 、 jdk1.6.0_29 我们的机器有三台&#xff0c;一台当作namenode、两台当作datanode&#xff1a; namenode&#xff1a;IP:192.168.0.25、机器名&#xff1a;kiddenzj &#xff08;这里的机器名要注意&#xff1a;机…

成佛、远不止渡沧海

地之及东南&#xff0c;有一海&#xff0c;称为“沧海”。沧海对面&#xff0c;就是仙家佛地。凡是能渡过沧海到达彼岸的人&#xff0c;就能立地成佛&#xff0c;修成正果。 于是&#xff0c;许许多多的人千里迢迢赶来&#xff0c;或乘帆船&#xff0c;或乘木筏&#xff0c;纷纷…

软件架构演进

传统架构到分布式架构详解 软件架构演进软件架构的发展经历了从单体架构、垂直架构、SOA架构到微服务架构的过程&#xff0c;博客里写到了这四种架构的特点以及优缺点分析&#xff0c;个人学习之用&#xff0c;仅供参考&#xff01; 1.1.1 单体架构 特点&#xff1a;1、所有的…

hadoop0.20.0第一个例子

这是Hadoop学习全程记录第2篇&#xff0c;在这篇里我将介绍一下如何在Eclipse下写第一个MapReduce程序。 新说明一下我的开发环境&#xff1a; 操作系统&#xff1a;在windows下使用wubi安装了ubuntu 10.10 hadoop版本&#xff1a;hadoop-0.20.2.tar.gz Eclipse版本&…

IDEA 修改JavaWeb的访问路径

问题描述 对于我这个刚刚使用IDEA不久的新手来说&#xff0c;能够正常运行就不错了,不过到了后面&#xff0c;可能会觉得IDEA给你分配的默认访问路径很不顺手&#xff0c;比如访问的时候需要通过: http://localhost:8080/web_war_exploded/ 来访问&#xff0c;对于web_w…

防撞库基本要求

专用安全要求 口令要求 设计要求说明 要求 是否满足 密码长度至少 8位字符&#xff0c;密码复杂性要求至少包含以下4种类别中的2种&#xff1a;大写字母、小写字母、数字、特殊符号 必选 满足 系统应具备对口令强度检测的能力&#xff0c;并对用户进行提示&#xff08;尽量不要…

odoo10 继承(扩展)、模块数据

一&#xff1a;继承 在不改变底层对象的时候添加新的功能——这是通过继承机制来实现的&#xff0c;作为在现有对象之上的修改层&#xff0c;这些修改可以发生在所有级别&#xff1a;模型&#xff0c;视图和业务逻辑。不是直接修改现有模块&#xff0c;而是创建一个新模块以添加…

做一个vue的todolist列表

<template><div id"app"><input type"text" v-model"todo" ref"ip"/><button click"add()">新增</button><br/><br/><hr/><ul><li v-for"(item,key) in li…

hadoop+hive-0.10.0完全分布式安装方法

hadoophive-0.10.0完全分布式安装方法 1、jdk版本&#xff1a;jdk-7u60-linux-x64.tar.gz http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html 2、hive版本&#xff1a;hive-0.10.0.tar.gz https://archive.apache.org/dist/hive/hive-0…

关于gitgithub的操作

先马克&#xff0c;回头细看&#xff0c;然后整理一下 https://linux.cn/article-4292-1.html转载于:https://www.cnblogs.com/mengjie1001/p/10076530.html

一种解决 MacBook 里的 App Store 无法登录的问题

刚刚买回来的 2018 款带有 touchbar 的 MacBook Pro 15 inc 在用 App Store 安装 app 时一直无法登录成功&#xff08;网络链接都是好的&#xff09;&#xff0c;导致软件都无法更新&#xff0c;折腾了挺一会的。 后来发现是要退出设置里的 iCloud 登录&#xff0c;然后重新登录…

第二次冲刺

1、今日各个成员的问题 组员问题张晋誌对mui的API看得不是很懂&#xff0c;无法顺利的使用袁庆杰基础不牢,编写困难周建峰eclipse没法创建web项目&#xff0c;按照网上的方法&#xff0c;check for updates 和 install new software 之后也没用许家烨给单一功能知道如何实现但项…

牌类游戏使用微服务重构笔记(八): 游戏网关服务器

网关服务器 所谓网关&#xff0c;其实就是维持玩家客户端的连接&#xff0c;将玩家发的游戏请求转发到具体后端服务的服务器&#xff0c;具有以下几个功能点&#xff1a; 长期运行&#xff0c;必须具有较高的稳定性和性能对外开放&#xff0c;即客户端需要知道网关的IP和端口&a…

配置独立于系统的PYTHON环境

配置独立于系统的PYTHON环境 python 当前用户包 一种解决方案是在利用本机的python环境的基础上&#xff0c;将python的包安装在当前user的.local文件夹下 一共有两种方式来实现pip的时候安装到当前user 设置pip配置文件 pip.conf 一种是在~/.pip文件夹下的pip配置文件pip.conf…