继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

把DataTable转换为泛型List<T>或是JSON

不要慕码人我要切诺基
关注TA
已关注
手记 281
粉丝 37
获赞 120

在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable。为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为泛型List<T>或是JSON。

Insus.NET有把这个转换功能写成一个扩展方法:


方法源代码:

 public static List<T> ToList<T>(this DataTable dt)        {            var columnNames = dt.Columns.Cast<DataColumn>()                .Select(c => c.ColumnName)                .ToList();            var properties = typeof(T).GetProperties();            return dt.AsEnumerable().Select(row =>            {                var objT = Activator.CreateInstance<T>();                foreach (var pro in properties)                {                    if (columnNames.Contains(pro.Name))                        pro.SetValue(objT, row[pro.Name] == DBNull.Value ? string.Empty : row[pro.Name].ToString(), null);                }                return objT;            }).ToList();        }

View Code

 

把DataTable转换为JSON:

 

方法源代码:

 public static string ToJson(this DataTable table)        {            List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();            foreach (DataRow row in table.Rows)            {                Dictionary<string, object> dict = new Dictionary<string, object>();                foreach (DataColumn col in table.Columns)                {                    dict[col.ColumnName] = row[col];                }                list.Add(dict);            }                                    return serializer.Serialize(list);        }

View Code

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP