From df41701bd6f2e21d768f4a4a8e71626e3ca83d0f Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期四, 31 八月 2023 10:47:10 +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