From 1d47cda889c0408d2fe885fc99727e85c591764c Mon Sep 17 00:00:00 2001 From: yangle <admin@YINMOU> Date: 星期三, 08 二月 2023 09:47:27 +0800 Subject: [PATCH] 日计划维护 --- WebAPI/Controllers/SCGL/日计划管理/DataHelper.cs | 79 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 77 insertions(+), 2 deletions(-) diff --git "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" index b9adbec..ed0e600 100644 --- "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" +++ "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" @@ -1,5 +1,8 @@ -锘縰sing System; +锘縰sing Newtonsoft.Json; +using System; +using System.Collections; using System.Collections.Generic; +using System.ComponentModel; using System.Data; using System.Linq; using System.Reflection; @@ -19,7 +22,7 @@ List<T> list = new List<T>(); if (ds.Tables[0].Rows.Count > 0) { - foreach (DataRow row in ds.Tables[0].Rows) + foreach (DataRow row in ds.Tables[0].Rows) { list.Add(row.Put(new T())); } @@ -167,5 +170,77 @@ } return $"update {table} set {strSet} where 1=1 {condition}"; } + + + + + /// <summary> + /// 灏哃ist杞崲鎴怐ataTable + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="data"></param> + /// <returns></returns> + public static DataTable ToDataTable<T>(this IList<T> data) + { + PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T)); + DataTable dt = new DataTable(); + for (int i = 0; i < properties.Count; i++) + { + PropertyDescriptor property = properties[i]; + dt.Columns.Add(property.Name, property.PropertyType); + } + object[] values = new object[properties.Count]; + foreach (T item in data) + { + for (int i = 0; i < values.Length; i++) + { + values[i] = properties[i].GetValue(item); + } + dt.Rows.Add(values); + } + return dt; + } + + + /// <summary> + /// 灏哃ist杞崲涓篋ataTable + /// </summary> + /// <param name="list">璇锋眰鏁版嵁</param> + /// <returns></returns> + public static DataTable ListToDataTable<T>(List<T> list) + { + //鍒涘缓涓�涓悕涓�"tableName"鐨勭┖琛� + DataTable dt = new DataTable("tableName"); + + //鍒涘缓浼犲叆瀵硅薄鍚嶇О鐨勫垪 + foreach (var item in list.FirstOrDefault().GetType().GetProperties()) + { + dt.Columns.Add(item.Name); + } + //寰幆瀛樺偍 + foreach (var item in list) + { + //鏂板姞琛� + DataRow value = dt.NewRow(); + //鏍规嵁DataTable涓殑鍊硷紝杩涜瀵瑰簲鐨勮祴鍊� + foreach (DataColumn dtColumn in dt.Columns) + { + int i = dt.Columns.IndexOf(dtColumn); + //鍩哄厓鍏冪礌锛岀洿鎺ュ鍒讹紝瀵硅薄绫诲瀷绛夛紝杩涜搴忓垪鍖� + if (value.GetType().IsPrimitive) + { + value[i] = item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item); + } + else + { + value[i] = JsonConvert.SerializeObject(item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item)); + } + } + dt.Rows.Add(value); + } + return dt; + } + } + } -- Gitblit v1.9.1