c#两种方式 dataset 与byte[] 字节的转换

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;
                }
            
        }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值