当前位置:  编程技术>.net/c#/asp.net

C#中datatable序列化与反序列化实例分析

    来源: 互联网  发布时间:2014-11-04

    本文导语:  本文实例讲述了C#中datatable序列化与反序列化,分享给大家供大家参考。具体方法如下: 一、datatable序列化 public string getSendDetailQuery(DateTime timeS, DateTime timeE, string sccount) { try { SmsOperate so = new SmsOperate(); //得到dt D...

本文实例讲述了C#中datatable序列化与反序列化,分享给大家供大家参考。具体方法如下:

一、datatable序列化

public string getSendDetailQuery(DateTime timeS, DateTime timeE, string sccount)
{
  try
  {
 SmsOperate so = new SmsOperate();

    //得到dt
 DataTable dtt = so.getSendDetailQuery(timeS, timeE, sccount);
 JavaScriptSerializer serializer = new JavaScriptSerializer();    
 string aaa = Serialize(dtt, false);//datatable不能直接序列化,此为序列化方法
 return "0:" + aaa;
 
  }
  catch (Exception e)
  {
 return "-1" + e.Message;
  }
}

/// 序列化方法
/// 不需要分页
/// 
/// 
/// false
/// 
public string Serialize(DataTable dt, bool flag)
{
  JavaScriptSerializer serializer = new JavaScriptSerializer();
  List list = new List();
  foreach (DataRow dr in dt.Rows)
  {
 Dictionary result = new Dictionary();
 foreach (DataColumn dc in dt.Columns)
 {
   result.Add(dc.ColumnName, dr[dc].ToString());
 }
 list.Add(result);
  }
  return serializer.Serialize(list); ;
}

二、datatable反序列化

public DataTable getSendDetailTest()
{
  DataTable dtb = new DataTable();

  //得到序列化结果aaa
  string aaa = getSendDetailQuery(Convert.ToDateTime("2012-01-01 00:00:00"), Convert.ToDateTime("2012-05-01 23:59:59"), "wangsub1");

  if (aaa.Substring(0, 1) == "0")
  {
 try
 {
   JavaScriptSerializer serializer = new JavaScriptSerializer();
  // var obj = serializer.DeserializeObject(aaa);//反序列化

 aaa=aaa.substring(2,aaa.length-2);

   ArrayList dic = serializer.Deserialize(aaa);//反序列化ArrayList类型
  
   if (dic.Count > 0)
   {
 foreach (Dictionary drow in dic)
 {
   if (dtb.Columns.Count == 0)
   {
  foreach (string key in drow.Keys)
  {
    dtb.Columns.Add(key, drow[key].GetType());//添加dt的列名
  }
   }
   DataRow row = dtb.NewRow();
   foreach (string key in drow.Keys)
   {

  row[key] = drow[key];//添加列值
   }
   dtb.Rows.Add(row);//添加一行
 }
   }
 }
 catch (Exception e)
 {
   //
 }
  }
  else
  {
 //
  }
  
  return dtb;
}

希望本文所述对大家C#程序设计的学习有所帮助。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C#实现Datatable排序的方法
  • c# dataTable 合并两个列到一个新列中的简单实例
  • c#将list类型转换成DataTable方法示例
  • C# datatable 不能通过已删除的行访问该行的信息处理方法
  • asp.net(c#版)添加DataRow数据列到DataTable控件
  • C# DataTable 转换为 实体类对象实例
  • c#的datatable转list示例
  • C#中DataTable删除行的方法分析
  • c#中合并DataTable重复行的值
  • c#数据绑定之删除datatable数据示例
  • C#获取变更过的DataTable记录的实现方法
  • C#操作EXCEL DataTable转换的实例代码
  • C#对DataTable里数据排序的方法
  • c# 如何将RadioButton与DataTable数据进行绑定
  • C#中csv文件与DataTable互相导入处理实例解析
  • c# DataTable与不同结构实体类转换的方法实例
  • C#中DataTable排序、检索、合并等操作实例
  • C#使用DataSet Datatable更新数据库的三种实现方法
  • c# 委托反射 DataTable转换为实体集的方法
  • C# DataTable的详细用法分享
  • Delete与Remove删除Datatable行的区别
  • DataSet与DataTable的区别示例介绍
  • jQuery表格插件 DataTables
  • datatable去掉重复行的方法
  • jquery转化Datatable为json数据的例子
  • DataSet、DataTable、DataRow区别详解
  • datatable行转列示例分享
  • 比较2个datatable内容是否相同的方法
  • npoi2.0将datatable对象转换为excel2007示例
  • DataTables List互相转换的实现类示例
  • Asp.net中DataTable导出到Excel的实现代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3