日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

反射赋值

發布時間:2023/11/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 反射赋值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前例子為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

總結

以上是生活随笔為你收集整理的反射赋值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。