zoukankan      html  css  js  c++  java
  • Dataset与二进制流的转换

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.IO;
    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    
    namespace BaseClientClass
    {
        public class XMLClass
        {
            /**/
            /// <summary>
            /// 此方法实现对Dataset的序列化生成二进制流
            /// </summary>
            /// <param name="err"></param>
            /// <returns>dsResult</returns>
            public byte[] DatasetToBinary( System.Data.DataSet dsResult,ref string err)
            {
                //ClearCommand();
                //DataSet dsResult = new DataSet();
                byte[] bArrayResult = null;
                try
                {
                    //dsResult = SqlHelper.ExecuteDataset(m_currentConnectionString, CommandType.Text, m_commandStringBuilder.ToString());
                    // 上面都是取数据的,无需关心.二进制压缩数据集是下面一小段
                       dsResult.RemotingFormat = SerializationFormat.Binary;
                    MemoryStream ms = new MemoryStream();
                    IFormatter bf = new BinaryFormatter();
                    bf.Serialize(ms, dsResult);
                    bArrayResult = ms.ToArray();
                    ms.Close();
                }
                catch (Exception ee)
                {
                    err = ee.ToString();
                }
                return bArrayResult;
            }
    
            /**/
            /// <summary>
            /// 此方法实现从二进制流还原Dataset数据
            /// </summary>
            /// <returns></returns>
            public DataSet BinaryToDataset(byte[] bUserData)
            {
                if (bUserData == null)
                {
                    //MessageBox.Show("二进制数据流为空");
                    //err = "";
                    return null;
                }
                // 反序列化的过程
                  MemoryStream ms = new MemoryStream(bUserData);
                IFormatter bf = new BinaryFormatter();
                object obj = bf.Deserialize(ms);
                DataSet dsResult = (DataSet)obj;
                ms.Close();
                return dsResult;
            }
    
        }
    }
    
    
  • 相关阅读:
    课堂例子验证
    大道至简第三章读后感
    动手动脑例子验证
    各数相加的思路、流程图、源代码及实现截图
    大道至简第二章读后感
    《大道至简》第一章读后感
    个人冲刺08
    个人冲刺07
    构建之法读后感04
    个人冲刺06
  • 原文地址:https://www.cnblogs.com/amylis_chen/p/2757808.html
Copyright © 2011-2022 走看看