龙空技术网

C#将DataTable数据源转换成实体类

重庆本地人 82

前言:

现在同学们对“实体类对象转化为字符串”大体比较重视,大家都需要分析一些“实体类对象转化为字符串”的相关文章。那么小编也在网络上搜集了一些有关“实体类对象转化为字符串””的相关资讯,希望各位老铁们能喜欢,咱们快快来了解一下吧!

在进行C#接口开发时经常需要将数据集转换成json返回,下面介绍一种将DataTable数据转换成实体类,然后再转换成json的方法。

一、创建全病案类

/// <summary>    /// 全病案    /// </summary> class Qba    {        /// <summary>        /// id        /// </summary>        public int ID { get; set; }        /// <summary>        /// 病案名称        /// </summary>        public string BAMC { get; set; }        /// <summary>        /// 名称        /// </summary>        public string WBMC { get; set; }        /// <summary>        /// 内容        /// </summary>        public string WBNR { get; set; }    }

二、工具类

   /// <summary>    /// 将DataTable数据源转换成实体类    /// </summary>    /// <typeparam name="T">实体</typeparam>    public static class ToModel<T> where T : new()    {        /// <summary>        /// 将DataTable数据源转换成实体类        /// </summary>        public static List<T> ConvertToModel(DataTable dt)        {            List<T> ts = new List<T>();// 定义集合            foreach (DataRow dr in dt.Rows)            {                T t = new T();                PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性                foreach (PropertyInfo pi in propertys)                {                    if (dt.Columns.Contains(pi.Name))                    {                        if (!pi.CanWrite) continue;                        var value = dr[pi.Name];                        if (value != DBNull.Value)                        {                            switch (pi.PropertyType.FullName)                            {                                case "System.Decimal":                                    pi.SetValue(t, decimal.Parse(value.ToString()), null);                                    break;                                case "System.String":                                    pi.SetValue(t, value.ToString(), null);                                    break;                                case "System.Int32":                                    pi.SetValue(t, int.Parse(value.ToString()), null);                                    break;                                default:                                    pi.SetValue(t, value, null);                                    break;                            }                        }                    }                }                ts.Add(t);            }            return ts;        }    }

三、调用

  class Root    {    public List <Qba > qba { get; set; }        public Root(string syxh)        {            DataTable data = DataAccess.Access().GetTableByProcedure("存储名称",               new SqlParameter[]{                        new SqlParameter("@唯一号",syxh)                    });            qba = ToModel<Qba>.ConvertToModel(data);            }     }

四、将实体类转换成json字符串

Root root = new Root(syxh);String  jsonStr = JsonConvert.SerializeObject(root);

标签: #实体类对象转化为字符串 #将实体类转换成json #实体类转换成json