尽管dataset可以存成xml。但这样或多或少会存在读取上的问题。而且从体积角度来讲,也不利于传输。
具体的函数如下:
using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary;
public static DataSet RetrieveDataSet(byte[] binaryData)
{
//创建内存流
MemoryStream memStream = new MemoryStream(binaryData);
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//反串行化到内存中
object obj = formatter.Deserialize(memStream);
//类型检验
if (obj is DataSet)
{
DataSet dataSetResult = (DataSet)obj;
return dataSetResult;
}
else
{
return null;
}
}
public static Byte[] GetBinaryFormatDataTable(DataTable tab)
{
//创建内存流
MemoryStream memStream = new MemoryStream();
//产生二进制序列化格式
IFormatter formatter = new BinaryFormatter();
//指定DataSet串行化格式是二进制
tab.RemotingFormat = SerializationFormat.Binary;
//串行化到内存中
formatter.Serialize(memStream, tab);
//将DataSet转化成byte[]
byte[] binaryResult = memStream.ToArray();
//清空和释放内存流
memStream.Close();
memStream.Dispose();
return binaryResult;
}
此代码非原产。转载处:http://xujunprogrammer.blog.hexun.com/7460858_d.html
|