| | |
| | | using System; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | |
| | | 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())); |
| | | } |
| | |
| | | } |
| | | return $"update {table} set {strSet} where 1=1 {condition}"; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// å°Listè½¬æ¢æDataTable |
| | | /// </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> |
| | | /// å°List转æ¢ä¸ºDataTable |
| | | /// </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; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |