反射賦值

目前例子為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.pswp.cn/news/387813.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387813.shtml
英文地址,請注明出處:http://en.pswp.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…