C# 將 DataTable 和 DataRow 轉化成 集合和實體類

        /// <summary>
        /// 將DataRow轉換爲實體對象
        /// </summary>
        public static T ConvertToEntity<T>(DataRow dr) where T : new()
        {
            T entity = new T();
            Type info = typeof(T);
            var properties = info.GetProperties();
            string columnName = string.Empty;
            object propName = DBNull.Value;
            foreach (var prop in properties)
            {
                //1.判斷該屬性是否可寫
                if (!prop.CanWrite)
                {
                    continue;
                }
                columnName = prop.Name;

                if (!dr.Table.Columns.Contains(columnName))
                {
                    continue;
                }
                propName = dr[columnName];
                if (propName != DBNull.Value)
                {
                    prop.SetValue(entity, Convert.ChangeType(propName, prop.PropertyType), null);
                }
            }
            return entity;
        }

        /// <summary>
        /// 將DataTable轉換爲實體集合
        /// </summary>
        public static List<T> ToEntityList<T>(DataTable dt) where T : new()
        {
            List<T> list = new List<T>(dt.Rows.Count);
            foreach (DataRow dr in dt.Rows)
            {
                list.Add(ConvertToEntity<T>(dr));
            }
            return list;
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章