惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
J
Java Code Geeks
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 叶小钗
小众软件
小众软件
博客园 - 聂微东
宝玉的分享
宝玉的分享
量子位
人人都是产品经理
人人都是产品经理
博客园_首页
罗磊的独立博客
腾讯CDC
美团技术团队
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
I
InfoQ
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Threat Research - Cisco Blogs
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hacker News: Front Page
B
Blog RSS Feed
L
LangChain Blog
C
Check Point Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
G
GRAHAM CLULEY
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Microsoft Azure Blog
Microsoft Azure Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - Franky
S
Schneier on Security
Attack and Defense Labs
Attack and Defense Labs
Microsoft Security Blog
Microsoft Security Blog
N
Netflix TechBlog - Medium
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tenable Blog
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Hacker News: Ask HN
Hacker News: Ask HN
A
Arctic Wolf
Schneier on Security
Schneier on Security
The Last Watchdog
The Last Watchdog
Latest news
Latest news
T
The Exploit Database - CXSecurity.com

博客园 - MasterCai

&lt;&lt;XtraGrid Use Tips&gt;&gt; (2) &lt;&lt;XtraGrid Use Tips&gt;&gt; (1) &lt;&lt;SOA系列&gt;&gt;--(1)-SOA Tips 《醒了自悟》--离别感言 2007年度家庭IT风云人物 R&D 给你一个抽象的任务,要你具体地完成 没有蠢问题(1):1个按钮,1张图...100个按钮,100张...,Www我和你拼了! <<读书笔记>>系列--《理解专业程序员》tips - MasterCai - 博客园 &lt;&lt;读书笔记&gt;&gt;系列--《VB2005-菜根谭》注释版 &lt;&lt;读书笔记&gt;&gt;系列--VB2005-菜根谭 Throw和Throw XX &lt;&lt;醒了自悟&gt;&gt;系列--Go On... OR Stop... 压缩传输,数据源源不断,助数据远行高飞 - compress dataset with .net 1.1 &lt;&lt;醒了自悟&gt;&gt;系列--微软好员工的十个标准(From Microsoft.com) &lt;&lt;读书笔记&gt;&gt;系列--微软研发75条心得 <<醒了自悟>>系列-bozo---虫不知---Don't know what you don't know - MasterCai &lt;&lt;醒了自悟&gt;&gt;系列--西游记歌词行诗--程序员生活写照??? 用户体验珠玑 &lt;&lt;醒了自悟&gt;&gt;系列--千年老妖---1000后的重生---重新脚踏实地
Compress DataSet with .net 2.0
MasterCai · 2006-11-01 · via 博客园 - MasterCai

NET Framework 2.0 版中新增GZipStream 类,对了就是它了!
啥也不说了,咣咣的,别整那些没用的,代码说明一切!

 

 1 ''' <summary>
 2     ''' 
 3     ''' </summary>
 4     ''' <param name="data"></param>
 5     ''' <returns></returns>
 6     ''' <remarks></remarks>
 7     Public Shared Function CompressDataSet(ByVal data As DataSet) As Byte()
 8 
 9 
10         Try
11 
12             Dim bf As New BinaryFormatter
13             Using ms As MemoryStream = New MemoryStream
14 
15                 bf.Serialize(ms, data)
16                 Dim b() As Byte = ms.GetBuffer()
17 
18                 Dim output As New MemoryStream
19                 Dim gzip As New GZipStream(output, CompressionMode.Compress, True)
20 
21                 gzip.Write(b, 0, b.Length)
22                 gzip.Close()
23 
24                 Return output.ToArray
25 
26 
27             End Using
28 
29 
30 
31         Catch ex As ApplicationException
32             MessageBox.Show(ex.Message, "An Error occured during compression", MessageBoxButtons.OK, MessageBoxIcon.Error)
33         Finally
34 
35         End Try
36 
37     End Function
38 
39     ''' <summary>
40     ''' 
41     ''' </summary>
42     ''' <param name="data"></param>
43     ''' <returns></returns>
44     ''' <remarks></remarks>
45     Public Shared Function DecompressDataSet(ByVal data As Byte()) As DataSet
46 
47 
48         Try
49 
50             Dim input As New MemoryStream
51             input.Write(data, 0, data.Length)
52             input.Position = 0
53             Dim gzip As New GZipStream(input0True)
54             Dim output As New MemoryStream
55             Dim buff As Byte() = New Byte(4096) {}
56             Dim read As Integer = -1
57             read = gzip.Read(buff, 0, buff.Length)
58             Do While (read > 0)
59                 output.Write(buff, 0, read)
60                 read = gzip.Read(buff, 0, buff.Length)
61             Loop
62             gzip.Close()
63             Dim result() As Byte = output.ToArray
64 
65 
66             Dim bf As New BinaryFormatter
67             Using ms As MemoryStream = New MemoryStream(result)
68                 Return DirectCast(bf.Deserialize(ms), DataSet)
69             End Using
70 
71 
72         Catch ex As ApplicationException
73             MessageBox.Show(ex.Message, "An Error occured during decompression", MessageBoxButtons.OK, MessageBoxIcon.Error)
74         Finally
75 
76         End Try
77 
78     End Function


Sample