lar*_*ryq 7 .net c# datatable xml-serialization
我有一个填充的DataTable我想序列化到一个文件供以后使用.我一直在寻找与此相关的选项,并想知道是否有人可以指出我正确的方向.
我将创建的是两种方法 - 一种用于将数据表写入文件,另一种用于使用文件作为输入创建新数据表.使用WriteXML()和Load()方法来执行此操作是否有意义,如果是这样,哪些标记是要关注的?感谢您的指导.
如果有帮助,我正在使用.Net 2.0.
par*_*cle 13
我认为Silveira 评论意味着使用二进制序列化.而且与XML相比,它的速度非常快,与二进制相比,特别是对于大量数据而言,序列化非常慢.与XML相比,它在磁盘上占用的空间也少得多.
public static void Serialize(DataSet ds, Stream stream) {
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(stream, ds);
}
public static DataSet Deserialize(Stream stream) {
BinaryFormatter serializer = new BinaryFormatter();
return (DataSet)serializer.Deserialize(stream);
}
Run Code Online (Sandbox Code Playgroud)
Mua*_*Dib 10
我会去读/写xml方法.我们使用它非常广泛.它很快,很简单,它内置于框架中.
重要提示:
如果您尝试使用二进制格式化程序序列化DataTable对象或DataSet对象,您仍将获得二进制文件,但它是一个相当大的文件,因为它充满了大量的XML数据.遗憾的是,二进制文件中的XML数据使得大型文件缺乏XML提供的可移植性和可读性优势.随后,反序列化此类文件可能需要几秒钟才能完成,并最终占用的内存比实际需要的多得多.因此,如果您选择ADO.NET对象的二进制序列化,因为您需要获得更紧凑的输出,那么您将失败.二进制序列化仍然是最节省空间的方法,但是对于ADO.NET对象,它并没有被证明是有效的.
有关完整参考,请阅读以下文章: -
http://msdn.microsoft.com/en-us/magazine/cc188907.aspx