• DataTable转List,转对象


    DataTable转List

            public static List<T> ToListModel<T>(this DataTable table) where T : new()
            {
                var type = typeof(T);
                var properties = type.GetProperties();
                List<T> list = new List<T>();
                foreach (DataRow row in table.Rows)
                {
                    var t = Activator.CreateInstance<T>();
                    foreach (var p in properties)
                    {
                        if (!table.Columns.Contains(p.Name))
                            continue;
                        if ((row[p.Name]).GetType() != typeof(DBNull))
                            p.SetValue(t, row[p.Name], null);
                    }
                    list.Add(t);
                    t = default(T);
                }
                return list;
            }
    View Code

    DataTable转Object

            public static object DataTableToObject(this DataTable table, int total)
            {
                Dictionary<string, object> data = new Dictionary<string, object>();
                List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
                data.Add("total", total);
                data.Add("rows", CreateRows(table));
                return data;   
            } 
    
            private static object CreateRows(DataTable table)
            {
                List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
                Dictionary<string, object> childRow;
                foreach (DataRow row in table.Rows)
                {
                    childRow = new Dictionary<string, object>();
                    foreach (DataColumn col in table.Columns)
                    {
                        bool isDate = false;                    
                        #region 时间转化
                        if (col.ColumnName.Contains("_DATE") || col.ColumnName.Contains("_TIME") || col.ColumnName.Contains("_DT") || col.ColumnName.Contains("FDATE"))
                        {
                            isDate = true;
                        }                 
                        #endregion
                        if (isDate)
                        {
                            try
                            {
                                childRow.Add(col.ColumnName, row[col] is DBNull ? "" : Convert.ToDateTime(row[col]).ToString("yyyy-MM-dd"));
                            }
                            catch
                            {
                                childRow.Add(col.ColumnName, row[col]);
                            }
                        }
                        else {
                            childRow.Add(col.ColumnName, row[col]);
                        }
                    }
                    parentRow.Add(childRow);
                }
                return parentRow;
            } 
    View Code
  • 相关阅读:
    单例模式
    BeanFactory VS ApplicationContext
    java利用接口和适配器进行完全解耦参考《thinking in java》
    javascr*pt对象的创建相对java 怎样去创建了"类"*以及实例化对象
    实例化bean
    Spring AOP With AspectJ
    spring入门之环境搭建
    项目中ApplicationContext
    BeanFactory VS FactoryBean
    软开心法十四||软件改进
  • 原文地址:https://www.cnblogs.com/plming/p/8142931.html
Copyright © 2020-2023  润新知