/// <summary>
/// DataTable序列化
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string SerializeDataTable(DataTable dt)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
foreach (DataRow dr in dt.Rows)//每一行信息,新建一个Dictionary<string,object>,将该行的每列信息加入到字典
{
Dictionary<string, object> result = new Dictionary<string, object>();
foreach (DataColumn dc in dt.Columns)
{
result.Add(dc.ColumnName, dr[dc].ToString());
}
list.Add(result);
}
return serializer.Serialize(list);//调用Serializer方法
}
/// <summary>
/// DataTable反序列化
/// </summary>
/// <param name="strJson"></param>
/// <returns></returns>
public static DataTable DeserializerTable(string strJson)
{
DataTable dt = new DataTable();
JavaScriptSerializer serializer = new JavaScriptSerializer();
ArrayList arralList = serializer.Deserialize<ArrayList>(strJson);//反序列化ArrayList类型
if (arralList.Count > 0)//反序列化后ArrayList个数不为0
{
foreach (Dictionary<string, object> row in arralList)
{
if (dt.Columns.Count == 0)//新建的DataTable中无任何信息,为其添加列名及类型
{
foreach (string key in row.Keys)
{
dt.Columns.Add(key, row[key].GetType());//添加dt的列名
}
}
DataRow dr = dt.NewRow();
foreach (string key in row.Keys)//讲arrayList中的值添加到DataTable中
{

dr[key] = row[key];//添加列值
}
dt.Rows.Add(dr);//添加一行
}
}
return dt;
}

最新文章

  1. 编译系统中BNF: Backus-Naur Form
  2. AlwaysON同步的原理及可用模式
  3. SPOJ 694. Distinct Substrings (后缀数组不相同的子串的个数)转
  4. php 实现 jsonp 数据接口
  5. Python3 学习第三弹:异常情况如何处理?
  6. java RSA加密解密--转载
  7. javascript笔记02:严格模式的特定要求
  8. eclipse 导入tomcat7源码
  9. ELK日志框架(2):log4net.ElasticSearch+ Kibana实现日志记录和显示
  10. Android笔记: ViewPager基本用法
  11. Android .9.png 的介绍
  12. 探讨.NET Core数据进行3DES加密和解密问题
  13. 「洛谷5283」「LOJ3048」「十二省联考2019」异或粽子【可持久化01trie+优先队列】
  14. web.xml中使用web前缀配置无法访问controller
  15. 在idea中不出现大波浪的设置
  16. Java第04次实验提纲(面向对象2-继承、多态、抽象类与接口)
  17. Jquery 获取对象的几种方式(转载)
  18. Android检查设备是否可以访问互联网,判断Internet连接,测试网络请求,解析域名
  19. JavaScript arguments对象详解
  20. HDU 1548 A strange lift (Dijkstra)

热门文章

  1. 香侬科技独家对话Facebook人工智能研究院首席科学家Devi Parikh
  2. TensorFlow相关的一些技巧
  3. Hadoop使用场景
  4. python文件操作与字符编码
  5. java技术-重点方向
  6. Eclipse配置Tomcat,访问404错误
  7. C基本语句和运算符
  8. 使用amaze ui模板全过程
  9. Ceph实战入门系列(一)——三节点Ceph集群的安装与部署
  10. 77. sqlserver 锁表解决方式