c#两种方式 dataset 与byte[] 字节的转换
来源:互联网 发布:天刀太白捏脸数据下载 编辑:程序博客网 时间:2024/05/17 05:01
sing System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using System.Xml;using System.IO;using System.Text.RegularExpressions;using System.Data;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary; /// <summary> /// dataset 转转换byte[] 字节 /// </summary> /// <param name="str"></param> public static byte[] DataToByte(DataSet ds) { byte[] bArrayResult = null; ds.RemotingFormat = SerializationFormat.Binary; MemoryStream ms = new MemoryStream(); IFormatter bf = new BinaryFormatter(); bf.Serialize(ms, ds); bArrayResult = ms.ToArray(); ms.Close(); ms.Dispose(); return bArrayResult; } /// <summary> /// byte[] 字节转datasheet /// </summary> /// <param name="bArrayResult"></param> /// <returns></returns> public static DataSet ByteToDataset(byte[] bArrayResult) { DataSet dsResult = new DataSet(); MemoryStream ms = new MemoryStream(bArrayResult); IFormatter bf = new BinaryFormatter(); object obj = bf.Deserialize(ms); dsResult = (DataSet)obj; ms.Close(); ms.Dispose(); return dsResult; } /// <summary> /// 第二种方法转换 /// </summary> /// <param name="ds"></param> /// <returns></returns> public static byte[] GetBinaryFormatDataSet(DataSet ds) { //创建内存流 MemoryStream memStream = new MemoryStream(); //产生二进制序列化格式 IFormatter formatter = new BinaryFormatter(); //指定DataSet串行化格式是二进制 ds.RemotingFormat = SerializationFormat.Binary; //串行化到内存中 formatter.Serialize(memStream, ds); //将DataSet转化成byte[] byte[] binaryResult = memStream.ToArray(); //清空和释放内存流 memStream.Close(); memStream.Dispose(); return binaryResult; } /// <summary> /// 第二种方法转换 /// </summary> /// <param name="binaryData"></param> /// <returns></returns> public static DataSet RetrieveDataSet(byte[] binaryData) { //创建内存流 MemoryStream memStream = new MemoryStream(binaryData); memStream.Seek(0, SeekOrigin.Begin); //产生二进制序列化格式 IFormatter formatter = new BinaryFormatter(); //反串行化到内存中 object obj = formatter.Deserialize(memStream); //类型检验 if (obj is DataSet) { DataSet dataSetResult = (DataSet)obj; return dataSetResult; } else { return null; } }