Object o=formatter.Deserialize(ms);//反序列化。object里面是读的XML格式的数据
ds = (DataSet)o;
ds = (DataSet)o;
解决方案 »
- 如何获取对服务器共享目录或文件操作的用户
- 添加BindingNavigator运行程序后,为啥它始终为灰色
- 手机在线状态判断
- 急求windows xp 下发送传真的方法!
- DataTable排序
- 从数据库读取内容并显示,请问如何设置段落首行空两格?
- C#的两个简单问题
- 帮测试一小网站,提点意见,谢谢
- 我的程序需要进行大数据量运算,占用近百兆内存,运行时界面经常死,咋办?
- 救命:::用.net调用java的webservice 报错 :WSDoAllReceiver: Request does not contain required Security header
- 请问:怎么判断一个字符是全格还是半格?
- 这样的SQL语句应该怎么写[在线急等]
XmlDataDocument xdd = new XmlDataDocument();
xdd.LoadXml(o.ToString());
DataSet ds = xdd.DataSet;
MyObject obj = (MyObject) formatter.Deserialize(ms);
这样不行?
{
IFormatter formatter = new BinaryFormatter();//定义BinaryFormatter以序列化DataSet对象
MemoryStream ms = new MemoryStream();//创建内存流对象
formatter.Serialize(ms, ds.GetXml());//把DataSet对象序列化到内存流
byte[] buffer = ms.ToArray();//把内存流对象写入字节数组
ms.Close();//关闭内存流对象
ms.Dispose();//释放资源
Stream _Stream = File.Open(FilePath, FileMode.Create);//创建文件
GZipStream gzipStream = new GZipStream(_Stream, CompressionMode.Compress, true);//创建压缩对象
gzipStream.Write(buffer, 0, buffer.Length);//把压缩后的数据写入文件
gzipStream.Close();//关闭压缩流,这里要注意:一定要关闭,要不然解压缩的时候会出现小于4K的文件读取不到数据,大于4K的文件读取不完整
gzipStream.Dispose();//释放对象
_Stream.Flush();//释放内存
_Stream.Close();//关闭流
_Stream.Dispose();//释放对象
}
这个是导出文件的
{
Stream _Stream = File.Open(strPath, FileMode.Open);//打开文件
_Stream.Position = 0;//设置文件流的位置
GZipStream gzipStream = new GZipStream(_Stream, CompressionMode.Decompress);//创建解压对象
byte[] buffer = new byte[4096];//定义数据缓冲
int offset = 0;//定义读取位置
MemoryStream ms = new MemoryStream();//定义内存流
while ((offset = gzipStream.Read(buffer, 0, buffer.Length)) != 0)
{
ms.Write(buffer, 0, offset);//解压后的数据写入内存流
}
IFormatter formatter = new BinaryFormatter();//定义BinaryFormatter以反序列化DataSet对象
ms.Position = 0;//设置内存流的位置
DataSet ds;
try
{
Object o=formatter.Deserialize(ms);
XmlDataDocument xdd = new XmlDataDocument();
xdd.LoadXml(o.ToString());
ds = xdd.DataSet;
}
catch(SqlException ex)
{
ds = null;
}
ms.Close();//关闭内存流
ms.Dispose();//释放资源
_Stream.Flush();//释放内存
_Stream.Close();//关闭文件流
_Stream.Dispose();//释放资源
gzipStream.Close();//关闭解压缩流
gzipStream.Dispose();//释放资源
return ds;
}
这个用于导入
using (StringReader xmlSR = new StringReader(o.ToString()))
{
ds.ReadXml(xmlSR, XmlReadMode.InferTypedSchema);
}