当前位置: 首页 > news >正文

dataTable转成对象、json、list

datatable转换成list集合

public static T TableToEntity<T>(DataTable dt, int rowindex = 0, bool isStoreDB = true){Type type = typeof(T);T entity = Activator.CreateInstance<T>();if (dt == null){return entity;}DataRow row = dt.Rows[rowindex];PropertyInfo[] pArray = type.GetProperties();foreach (PropertyInfo p in pArray){if (!dt.Columns.Contains(p.Name) || row[p.Name] == null || row[p.Name] == DBNull.Value){continue;}if (isStoreDB && p.PropertyType == typeof(DateTime) && Convert.ToDateTime(row[p.Name]) < Convert.ToDateTime("1753-01-02")){continue;}try{var obj = Convert.ChangeType(row[p.Name], p.PropertyType);p.SetValue(entity, obj, null);}catch (Exception){}}return entity;}

//多行datatable数据转换为对象:

 public static List<T> TableToList<T>(DataTable dt){List<T> listT = new List<T>();Type type = typeof(T);if (dt == null){return listT;}if (dt.Rows.Count > 0){for (int i = 0; i < dt.Rows.Count; i++){T entity = Activator.CreateInstance<T>();DataRow row = dt.Rows[i];PropertyInfo[] pArray = type.GetProperties();foreach (PropertyInfo p in pArray){if (!dt.Columns.Contains(p.Name) || row[p.Name] == null || row[p.Name] == DBNull.Value){continue;}if (p.PropertyType == typeof(DateTime) && Convert.ToDateTime(row[p.Name]) < Convert.ToDateTime("1753-01-02")){continue;}try{var obj = Convert.ChangeType(row[p.Name], p.PropertyType);p.SetValue(entity, obj, null);}catch (Exception){// throw;}}listT.Add(entity);}}return listT;}

datatable转换成json

public static string DataTableToJson(DataTable table){var JsonString = new StringBuilder();if (table==null){return "数据内容为null";}if (table.Rows.Count > 0 && table!=null){JsonString.Append("[");for (int i = 0; i < table.Rows.Count; i++){JsonString.Append("{");for (int j = 0; j < table.Columns.Count; j++){if (j < table.Columns.Count - 1){JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");}else if (j == table.Columns.Count - 1){JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");}}if (i == table.Rows.Count - 1){JsonString.Append("}");}else{JsonString.Append("},");}}JsonString.Append("]");}return JsonString.ToString();}
http://www.lryc.cn/news/99081.html

相关文章:

  • ubuntu环境安装centos7虚拟机网络主机不可达,ping不通
  • STN:Spatial Transformer Networks
  • C语言学习笔记 VScode设置C环境-06
  • alias取别名后,另一个shell中和shell脚本中不生效的问题以及crontab执行docker失败问题
  • Shell ❀ 一键配置Iptables规则脚本 (HW推荐)
  • linux服务器查找大文件及删除文件后磁盘空间没有得到释放
  • Java那些“锁”事 - 死锁及排查
  • LLM系列 | 18 : 如何用LangChain进行网页问答
  • Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy
  • 搭建golang开发环境
  • Django实现音乐网站 ⑴
  • 基于粒子群优化算法的分布式电源选址与定容【多目标优化】【IEEE33节点】(Matlab代码实现)
  • 打卡一个力扣题目
  • 【SSM—SpringMVC】 问题集锦(持续更新)
  • 2022年全国职业院校技能大赛(高职组)“软件测试”赛项接口测试任务书
  • Docker 如何助您成为数据科学家
  • 机器学习01 -Hello World(对鸢尾花(Iris Flower)进行训练及测试)
  • android studio JNI开发
  • CSS 高频按钮样式
  • 系列二、RocketMQ简介
  • 论文笔记--Skip-Thought Vectors
  • 1400*B. Karen and Coffee
  • 【业务功能篇54】Springboot项目常用工具类:HTTP状态码/客户端request
  • Fine Logic
  • Neo4j图数据基本操作
  • 前端JavaScript面试100问(中)
  • Docker 安全及日志管理与https部署
  • 2.3 HLSL常用函数
  • 互联网的发展
  • STM32 CAN通讯实验程序