应用背景:
项目改造需要将当天实时数据备份到历史数据表中,将实时数据的部分字段的是DataTable转换成二进制数据以方便存储为一条历史数据记录入库;当需要查询历史数据时,再将二进制数据转化为DataTable方便进行页面数据展示。
MemoryStream的应用:
//将DataTable转换为byte[]二进制数组
private static byte[] DataTableToByte(DataTable dt)
{
byte[] bytes;
using (MemoryStream memoryStream = new MemoryStream())
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(memoryStream, dt);
bytes = memoryStream.GetBuffer();
}
return bytes;
}
//将二进制数组byte[]转换为DataTable
private static DataTable Byte2DataTable(byte[] bytes)
{
DataTable dt;
using (MemoryStream memoryStream = new MemoryStream(bytes))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
dt = (DataTable)binaryFormatter.Deserialize(memoryStream);
}
return dt;
}