1
duhe
4 天以前 d703d7cc2f3a86692b1db16793ff2ffc60a1a355
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Web;
using Newtonsoft.Json;
 
namespace WebAPI.DbUntil
{
    public class DataFormatUntil
    {
        /// <summary>
        /// dataset转list
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="entity"></param>
        /// <param name="ds"></param>
        /// <returns></returns>
        public static List<T> PutAllVal<T>(T entity, DataSet ds) where T : new()
        {
            
            List<T> lists = new List<T>();
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    lists.Add(PutVal(new T(), row));
                }
            }
            return lists;
        }
        /// <summary>
        /// datarow转model
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="entity"></param>
        /// <param name="row"></param>
        /// <returns></returns>
        public static T PutVal<T>(T entity, DataRow row) where T : new()
        {
            //初始化 如果为null
            if (entity == null)
            {
                entity = new T();
            }
            //得到类型
            Type type = typeof(T);
            //取得属性集合
            PropertyInfo[] pi = type.GetProperties();
            foreach (PropertyInfo item in pi)
            {
                //给属性赋值
                if (row[item.Name] != null && row[item.Name] != DBNull.Value)
                {
                    if (item.PropertyType == typeof(System.Nullable<System.DateTime>))
                    {
                        item.SetValue(entity, Convert.ToDateTime(row[item.Name].ToString()), null);
                    }
                    else
                    {
                        item.SetValue(entity, Convert.ChangeType(row[item.Name], item.PropertyType), null);
                    }
                }
            }
            return entity;
        }
 
        #region 返回sql影响行数
        public static int BackRowCount(string sql,string tableName)
        {
            return new SQLHelper.ClsCN().RunProcReturn(sql, tableName).Tables[0].Rows.Count;
        }
        #endregion
 
        #region 返回sql返回的数据标题
        public static List<object> BackColTitle(DataSet ds)
        {
            List<object> columnNameList = new List<object>();
            foreach (DataColumn col in ds.Tables[0].Columns)
            {
 
                Type dataType = col.DataType;
                string ColmString = "{\"ColmName\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                columnNameList.Add(JsonConvert.DeserializeObject(ColmString));
            }
            return columnNameList;
        }
        #endregion
 
    }
}