原将一个指纹录入得到的 byte数组 存入Access数据库(字段类型:OLD对象)时,数组长度为120000(数据库中显示为“长二进制数据”),再用 OleDbDataAdapter 和 DataSet 从数据库后取出该数据时,为object类型,后经网络查询,用 A 方法将该object类型还原为byte数组后,长度为256,再用 B 方法还原得到的数组长度为 54,均与原数组大相径庭,问如何才能将object对象完美还原为原数组?或者有无方法直接从数据库调回原数组?
附:A、B方法
public static byte[] A(object obj)
{
byte[] buff = new byte[Marshal.SizeOf(obj)];
IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(buff, 0);
Marshal.StructureToPtr(obj, ptr, true);
return buff;
}
public static byte[] B(object obj)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
bf.Serialize(stream, obj);
byte[] datas = stream.ToArray();
stream.Dispose();
return datas;
}