DataSet 系列化 问题 如何把DataSet系列化,并且保存为一个文件同事如何从这个文件中还原回DataSet 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将dataset系列化为XML,只要简单地调用它的WriteXml()的几个重载方法,就可以方便地将数据系列化为XML /// <summary> /// 序列化 /// </summary> /// <param name="data">要序列化的对象</param> /// <returns>返回存放序列化后的数据缓冲区</returns> public static byte[] Serialize(object data) { BinaryFormatter formatter = new BinaryFormatter(); MemoryStream rems = new MemoryStream(); formatter.Serialize(rems, data); return rems.GetBuffer(); } /// <summary> /// 反序列化 /// </summary> /// <param name="data">数据缓冲区</param> /// <returns>对象</returns> public static object Deserialize(byte[] data) { BinaryFormatter formatter = new BinaryFormatter(); MemoryStream rems = new MemoryStream(data); data = null; return formatter.Deserialize(rems); } 上面那上是二进制的 这个是存为XML的.. private DataSet Read() { OpenFileDialog filexml=new OpenFileDialog(); filexml.Filter="XML文件(*.xml)|*.xml|所有文件(*.*)|*.*"; if(filexml.ShowDialog()==DialogResult.OK) { //创建XmlTextReader对象 XmlTextReader xReader=new XmlTextReader(filexml.FileName); //创建一个新的数据集 DataSet ds=new DataSet(); //从filexml中读出数据集 ds.ReadXml(xReader,XmlReadMode.Auto); return ds; } return null; } private void Write(DataSet ds) { SaveFileDialog filexml=new SaveFileDialog(); filexml.Filter="XML文件(*.xml)|*.xml|所有文件(*.*)|*.*"; if(filexml.ShowDialog()==DialogResult.OK) { ds.WriteXml(filexml.FileName,XmlWriteMode.WriteSchema); } } hehe ,都很对!我就不写了顺便接分! 直接用DataSet提拱的方法就可以解决啊! 奶奶个熊PPC中竟然不支持using System.Runtime.Serialization.Formatters.Binary;using System.Runtime.Serialization;只能使用XML了还有系列化方法吗? up寻求PPC下的系列化和反系列化 http://www.biplip.com/default.aspx?mid=348&ctl=View&ItemId=162没有看到什么方法 c#怎么停止线程池执行 到底XtraReport中XtraReportsDemos.TableReport.Report什么意思? C#panel透明窗体最小化恢复后透明成黑色问题 C#程序中用到一些图片例如:棋盘图片,我应该放到程序项目的文件下,如何得到它,主要是路径问题? Button 控件的OnClientClick和OnClick的执行问题 谁能给个TreeView的例子... 水晶报表能不能设置自动列数??? c#语法问题请帮忙 ListBox 绑定后 怎么更改啊 请问如何把INT 类型 强制转换成String 问一个关于Remoting文件传输的问题!!急啊! 懂日语的进 谢谢
/// 序列化
/// </summary>
/// <param name="data">要序列化的对象</param>
/// <returns>返回存放序列化后的数据缓冲区</returns>
public static byte[] Serialize(object data)
{
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream rems = new MemoryStream();
formatter.Serialize(rems, data);
return rems.GetBuffer();
} /// <summary>
/// 反序列化
/// </summary>
/// <param name="data">数据缓冲区</param>
/// <returns>对象</returns>
public static object Deserialize(byte[] data)
{
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream rems = new MemoryStream(data);
data = null;
return formatter.Deserialize(rems);
}
private DataSet Read()
{
OpenFileDialog filexml=new OpenFileDialog();
filexml.Filter="XML文件(*.xml)|*.xml|所有文件(*.*)|*.*";
if(filexml.ShowDialog()==DialogResult.OK)
{
//创建XmlTextReader对象
XmlTextReader xReader=new XmlTextReader(filexml.FileName);
//创建一个新的数据集
DataSet ds=new DataSet();
//从filexml中读出数据集
ds.ReadXml(xReader,XmlReadMode.Auto);
return ds;
}
return null;
}
private void Write(DataSet ds)
{
SaveFileDialog filexml=new SaveFileDialog();
filexml.Filter="XML文件(*.xml)|*.xml|所有文件(*.*)|*.*";
if(filexml.ShowDialog()==DialogResult.OK)
{
ds.WriteXml(filexml.FileName,XmlWriteMode.WriteSchema);
}
}
我就不写了
顺便接分!
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
只能使用XML了还有系列化方法吗?