C#中datatable序列化与反序列化实例分析
程序员文章站
2023-12-19 20:10:52
本文实例讲述了c#中datatable序列化与反序列化,分享给大家供大家参考。具体方法如下:
一、datatable序列化
public string gets...
本文实例讲述了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; } } /// <summary>序列化方法 /// 不需要分页 /// </summary> /// <param name="dt"></param> /// <param name="flag">false</param> /// <returns></returns> public string serialize(datatable dt, bool flag) { javascriptserializer serializer = new javascriptserializer(); list<dictionary<string, object>> list = new list<dictionary<string, object>>(); foreach (datarow dr in dt.rows) { 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); ; }
二、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<arraylist>(aaa);//反序列化arraylist类型 if (dic.count > 0) { foreach (dictionary<string, object> 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#程序设计的学习有所帮助。