亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C# DataSet對象序列化并壓縮

2019-11-17 04:18:43
字體:
來源:轉載
供稿:網友

今天做一個項目中用到把DataSet對象序列化成文件,并上傳到服務器,不過生成的文件比較大,就想著壓縮一下,找了一下資料,用GZipStream來壓縮了一下,效果還是非常理想的?,F在把這部分代碼整理了一下:

 

view plaincopy to clipboardPRint?
using System.Data;  
using System.IO;  
using System.IO.Compression;  
using System.Runtime.Serialization;  
using System.Runtime.Serialization.Formatters.Binary;  
 
namespace DataSetSerializerDeserialize  
{  
    class Program  
    {  
        /// <summary>  
        /// 序列化DataSet對象并壓縮  
        /// </summary>  
        /// <param name="ds"></param>  
        static void DataSetSerializerCompression(DataSet ds)  
        {  
            IFormatter formatter = new BinaryFormatter();//定義BinaryFormatter以序列化DataSet對象  
              
            MemoryStream ms = new MemoryStream();//創建內存流對象  
 
            formatter.Serialize(ms, ds);//把DataSet對象序列化到內存流  
 
            byte[] buffer = ms.ToArray();//把內存流對象寫入字節數組  
 
            ms.Close();//關閉內存流對象  
 
            ms.Dispose();//釋放資源  
 
            FileStream fs = File.Create("datasetCompression.dat");//創建文件  
 
            GZipStream gzipStream = new GZipStream(fs, CompressionMode.Compress, true);//創建壓縮對象  
 
            gzipStream.Write(buffer, 0, buffer.Length);//把壓縮后的數據寫入文件  
 
            fs.Close();//關閉流  
 
            fs.Dispose();//釋放對象  
        }  
 
        /// <summary>  
        /// 不壓縮直接序列化DataSet  
        /// </summary>  
        /// <param name="ds"></param>  
        static void DataSetSerializer(DataSet ds)  
        {  
            IFormatter formatter = new BinaryFormatter();//定義BinaryFormatter以序列化DataSet對象  
 
            FileStream fs = File.Create("dataset.dat");//創建文件  
 
            formatter.Serialize(fs, ds);//把DataSet對象序列化到文件  
 
            fs.Close();//關閉流  
 
            fs.Dispose();//釋放對象  
        }  
 
        static void Main(string[] args)  
        {  
            DataTable table = new DataTable("ParentTable");  
              
            DataColumn column;  
            DataRow row;  
 
            column = new DataColumn();  
            column.DataType = System.Type.GetType("System.Int32");  
            column.ColumnName = "id";  
            column.ReadOnly = true;  
            column.Unique = true;  
            table.Columns.Add(column);  
 
            column = new DataColumn();  
            column.DataType = System.Type.GetType("System.String");  
            column.ColumnName = "ParentItem";  
            column.AutoIncrement = false;  
            column.Caption = "ParentItem";  
            column.ReadOnly = false;  
            column.Unique = false;  
            table.Columns.Add(column);  
 
            DataColumn[] PrimaryKeyColumns = new DataColumn[1];  
            PrimaryKeyColumns[0] = table.Columns["id"];  
            table.PrimaryKey = PrimaryKeyColumns;  
 
            DataSet dataSet = new DataSet();  
            dataSet.Tables.Add(table);  
 
            for (int i = 0; i <= 100; i++)  
            {  
                row = table.NewRow();  
                row["id"] = i;  
                row["ParentItem"] = "ParentItem " + i;  
                table.Rows.Add(row);  
            }  
            DataSetSerializer(dataSet);  
            DataSetSerializerCompression(dataSet);  
        }  
    }  

using System.Data;
using System.IO;
using System.IO.Compression;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

namespace DataSetSerializerDeserialize
{
    class Program
    {
        /// <summary>
        /// 序列化DataSet對象并壓縮
        /// </summary>
        /// <param name="ds"></param>
        static void DataSetSerializerCompression(DataSet ds)
        {
            IFormatter formatter = new BinaryFormatter();//定義BinaryFormatter以序列化DataSet對象
           
            MemoryStream ms = new MemoryStream();//創建內存流對象

            formatter.Serialize(ms, ds);//把DataSet對象序列化到內存流

            byte[] buffer = ms.ToArray();//把內存流對象寫入字節數組

            ms.Close();//關閉內存流對象

            ms.Dispose();//釋放資源

            FileStream fs = File.Create("datasetCompression.dat");//創建文件

            GZipStream gzipStream = new GZipStream(fs, CompressionMode.Compress, true);//創建壓縮對象

            gzipStream.Write(buffer, 0, buffer.Length);//把壓縮后的數據寫入文件

            fs.Close();//關閉流

            fs.Dispose();//釋放對象
        }

        /// <summary>
        /// 不壓縮直接序列化DataSet
        /// </summary>
        /// <param name="ds"></param>
        static void DataSetSerializer(DataSet ds)
        {
            IFormatter formatter = new BinaryFormatter();//定義BinaryFormatter以序列化DataSet對象

            FileStream fs = File.Create("dataset.dat");//創建文件

            formatter.Serialize(fs, ds);//把DataSet對象序列化到文件

            fs.Close();//關閉流

            fs.Dispose();//釋放對象
        }

        static void Main(string[] args)
        {
            DataTable table = new DataTable("ParentTable");
           
            DataColumn column;
            DataRow row;

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "id";
            column.ReadOnly = true;
            column.Unique = true;
            table.Columns.Add(column);

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "ParentItem";
            column.AutoIncrement = false;
            column.Caption = "ParentItem";
            column.ReadOnly = false;
            column.Unique = false;
            table.Columns.Add(column);

            DataColumn[] PrimaryKeyColumns = new DataColumn[1];
            PrimaryKeyColumns[0] = table.Columns["id"];
            table.PrimaryKey = PrimaryKeyColumns;

            DataSet dataSet = new DataSet();
            dataSet.Tables.Add(table);

            for (int i = 0; i <= 100; i++)
            {
                row = table.NewRow();
                row["id"] = i;
                row["ParentItem"] = "ParentItem " + i;
                table.Rows.Add(row);
            }
            DataSetSerializer(dataSet);
            DataSetSerializerCompression(dataSet);
        }
    }
}
 

 

這里先把序列化及壓縮的部分代碼貼出來,明天貼解壓及反序列化的代碼。

http://blog.csdn.net/wlkjhxd/archive/2009/03/24/4021436.aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av中文在线| 亚洲情综合五月天| 亚洲男人av电影| 欧美中文字幕精品| 亚洲精品一区二区在线| 欧美激情性做爰免费视频| 久久国产精品久久久久久久久久| 亚洲毛片在线观看| 久久男人的天堂| 久久久精品美女| 成人免费看黄网站| 国产精品一香蕉国产线看观看| 欧美亚洲成人免费| 国产精品成av人在线视午夜片| 日韩中文字幕视频| 色在人av网站天堂精品| 亚洲免费av网址| 97av在线播放| **欧美日韩vr在线| 久久精品久久精品亚洲人| 国产日韩欧美自拍| 久久久999成人| 精品视频在线导航| 久久青草精品视频免费观看| 欧美精品一区二区免费| 一个人看的www久久| 亚洲成人久久一区| 日韩国产高清污视频在线观看| 久久国产加勒比精品无码| 国产精品日日摸夜夜添夜夜av| 亚洲夜晚福利在线观看| 成人a在线观看| 久久久天堂国产精品女人| 亚洲精品久久在线| 久久人91精品久久久久久不卡| 日韩精品在线视频| 97精品欧美一区二区三区| 国产精品久久久久久影视| 国产免费一区二区三区香蕉精| 中文字幕久精品免费视频| 亚洲国产另类久久精品| 国产精品自拍偷拍视频| 日韩精品免费观看| 国产精品自在线| 成人黄色av免费在线观看| 亚洲天堂免费在线| 中文字幕精品视频| 国产精品欧美亚洲777777| 不卡在线观看电视剧完整版| 久久久精品久久久| 久久久999国产| 91香蕉嫩草神马影院在线观看| 国产欧美欧洲在线观看| 国产欧美日韩综合精品| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩精品中文字幕| 美女久久久久久久久久久| 亚洲最大中文字幕| 欧美综合一区第一页| 久久精品国产精品| 日韩免费黄色av| 欧美日韩免费在线| 日韩高清有码在线| 日韩av在线免费看| 欧美成人三级视频网站| 欧美电影免费观看大全| 久久久亚洲国产天美传媒修理工| 92国产精品久久久久首页| 日韩av黄色在线观看| 亚洲视屏在线播放| www欧美日韩| 高清亚洲成在人网站天堂| 亚洲第一精品自拍| 日韩极品精品视频免费观看| 久久久久久一区二区三区| 日韩的一区二区| 97人人模人人爽人人喊中文字| 人九九综合九九宗合| wwwwwwww亚洲| 午夜精品久久久久久久99热浪潮| 久久久之久亚州精品露出| 精品美女国产在线| 亚洲成人精品av| 欧美国产中文字幕| 中文字幕日韩专区| 久久久人成影片一区二区三区| 亚洲国产精品999| 国产一区二区成人| 欧美日韩高清区| 日韩av在线免费| 欧美成人午夜激情在线| 日韩在线观看网址| 国产精品久久久久999| 欧美巨大黑人极品精男| 亚洲直播在线一区| 欧美日韩国产中文精品字幕自在自线| 欧美日韩一区二区在线播放| 亚洲第一区中文字幕| 久久久噜噜噜久噜久久| 日韩在线观看高清| 成人激情视频网| 欧美尺度大的性做爰视频| 国自产精品手机在线观看视频| 久久久97精品| 国产精品久久久久久久av大片| 欧美国产欧美亚洲国产日韩mv天天看完整| 日本高清不卡在线| 亚洲一区二区三区四区在线播放| 黄色91在线观看| 色偷偷亚洲男人天堂| 国产精品爽黄69| 国产精品偷伦免费视频观看的| 亚洲激情在线观看| 欧美大成色www永久网站婷| 欧美日韩高清在线观看| 精品视频—区二区三区免费| 色偷偷偷综合中文字幕;dd| 岛国av一区二区在线在线观看| 国产精品丝袜视频| 欧美激情综合色综合啪啪五月| 日本成人精品在线| 久久久久久久久久久免费| 久久综合国产精品台湾中文娱乐网| 成人中文字幕+乱码+中文字幕| 97香蕉超级碰碰久久免费软件| 欧美性高潮床叫视频| 夜夜躁日日躁狠狠久久88av| 中文字幕一区二区精品| 国产精品盗摄久久久| 日韩亚洲欧美中文在线| 国产欧美中文字幕| 欧美黑人巨大精品一区二区| 欧美精品久久久久久久久| 久久露脸国产精品| 欧美日韩在线影院| 日韩电影在线观看中文字幕| 欧美成人精品一区| 在线观看中文字幕亚洲| 中文字幕久热精品视频在线| 国产一区二区三区日韩欧美| 国产精品丝袜久久久久久不卡| 日韩最新中文字幕电影免费看| 亚洲人午夜精品| 亚洲一区二区三区毛片| 亚洲综合小说区| 亚洲国产精品视频在线观看| 国产精品专区一| 7777精品久久久久久| 国产精品欧美日韩| 国产91在线高潮白浆在线观看| 一区二区三区黄色| 波霸ol色综合久久| 亚洲美女在线观看| 青青青国产精品一区二区| 国产成人精品a视频一区www| 国产午夜精品全部视频在线播放| 97热在线精品视频在线观看| 91国内免费在线视频| 精品久久久久久亚洲国产300| 欧美国产日韩一区二区三区| 日本精品久久久久久久| 日本a级片电影一区二区| 欧美日韩免费一区| 成人两性免费视频|