含有图片列的DataTable序列化后还原问题

tongnaifu 2012-03-31 07:56:50
不让连续顶贴,又没人回答,只好另开一贴。原帖:
http://topic.csdn.net/u/20120330/22/a8c32880-14f5-481e-af40-f18db2d133d3.html

各位高手帮帮忙啊
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我想你使用DataTable、DataSet是因为它比较“无模式”吧?

既然没有模式,你就要付出代价。自己写一大堆序列化和解析的代码。你需要在所谓的序列化之前,先将所有的图片用你自己的序列化程序转换为一种格式(例如数据类型t),然后在接收端确保原封不动地接收到同一类型(t)的数据,再自己单独再次反序列化这些特殊数据。
jointan 2012-04-02
  • 打赏
  • 举报
回复
写入时用DataSet的WriteXml(内存流, XmlWriteMode.WriteSchema);

读取时用DataSet的ReadXml(内存流);

你原来的方法会导致DataSet的架构丢失,而引起新建立的DataSet架构不正确.
tongnaifu 2012-04-02
  • 打赏
  • 举报
回复
再顶顶,都几天了,没人回答?
机器人 2012-04-02
  • 打赏
  • 举报
回复
你用 GetBytes 转化显然是不对的。应该是16进制格式的string 转成byte[],例如, "ae00cf"转换成0xae00cf

http://www.cnblogs.com/Mainz/archive/2008/04/09/1144242.html
tongnaifu 2012-04-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

我想你使用DataTable、DataSet是因为它比较“无模式”吧?

既然没有模式,你就要付出代价。自己写一大堆序列化和解析的代码。你需要在所谓的序列化之前,先将所有的图片用你自己的序列化程序转换为一种格式(例如数据类型t),然后在接收端确保原封不动地接收到同一类型(t)的数据,再自己单独再次反序列化这些特殊数据。
[/Quote]
谢谢您的指点。
其实,我想到把这些图片列单独取出来处理了,图片本身就是byte[],但那样做比较麻烦啊,就是想看看有没有简单点的方法,如果实在没有就只好麻烦点单独处理了,过几天看看有没有好方法再结贴吧。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧