<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[林里博客]]></title>
<link>http://www.luckli.cn/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[linli7000@qq.com(小里飞刀)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>林里博客</title>
	<url>http://www.luckli.cn/images/logos.gif</url>
	<link>http://www.luckli.cn/</link>
	<description>林里博客</description>
</image>

			<item>
			<link>http://www.luckli.cn/article.asp?id=89</link>
			<title><![CDATA[个人开公司的流程]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[个人日记]]></category>
			<pubDate>Fri,03 Sep 2010 12:55:37 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=89</guid>
		<description><![CDATA[一、选择公司的形式：<br/>普通的有限责任公司，最低注册资金3万元，需要2个（或以上）股东，从06年1月起新的公司法规定，允许1个股东注册有限责任公司，这种特殊的有限责任公司又称“一人有限公司”（但公司名称中不会有“一人”字样，执照上会注明“自然人独资”），最低注册资金10万元。<br/><br/>如果你和朋友、家人合伙投资创业，可选择普通的有限公司，最低注册资金3万元；如果只有你一个人作为股东，则选择一人有限公司，最低注册资金10万元。<br/><br/>二、注册公司的步骤：<br/>1.核名：到工商局去领取一张“企业（字号）名称预先核准申请表”，填写你准备取的公司名称，由工商局上网（工商局内部网）检索是否有重名，如果没有重名，就可以使用这个名称，就会核发一张“企业（字号）名称预先核准通知书”。这一步的手续费是30元。 （30元可以帮你检索5个名字，很多名字重复，所以一般常见的名字就不用试了，免得花冤枉钱）<br/><br/>2.租房：去专门的写字楼租一间办公室，如果你自己有厂房或者办公室也可以，有的地方不允许在居民楼里办公。租房后要签订租房合同，并让房东提供房产证的复印件。<br/>签订好租房合同后，还要到税务局去买印花税，按年租金的千分之一的税率购买，例如你的每年房租是1万元，那就要买10元钱的印花税，贴在房租合同的首页，后面凡是需要用到房租合同的地方，都需要是贴了印花税的合同复印件。<br/><br/>3.编写“公司章程”：可以在工商局网站下载“公司章程”的样本，修改一下就可以了。章程的最后由所有股东签名。<br/><br/>4.刻私章：去街上刻章的地方刻一个私章，给他们讲刻法人私章（方形的）。费用大概20元左右。<br/><br/>5.到会计师事务所领取“银行询征函”：联系一家会计师事务所，领取一张“银行询征函”（必须是原件，会计师事务所盖鲜章）。如果你不清楚，可以看报纸上的分类广告，有很多会计师事务所的广告。<br/><br/>6.去银行开立公司验资户：所有股东带上自己入股的那一部分钱到银行，带上公司章程、工商局发的核名通知、法人代表的私章、身份证、用于验资的钱、空白询征函表格，到银行去开立公司帐户，你要告诉银行是开验资户。开立好公司帐户后，各个股东按自己出资额向公司帐户中存入相应的钱。<br/>银行会发给每个股东缴款单、并在询征函上盖银行的章。<br/>注 意：公司法规定，注册公司时，投资人（股东）必须缴纳足额的资本，可以以贷币形式（也就是人民币）出资，也可以以实物（如汽车）、房产、知识产权等出资。 到银行办的只是货币出资这一部分，如果你有实物、房产等作为出资的，需要到会计师事务所鉴定其价值后再以其实际价值出资，比较麻烦，因此建议你直接拿钱来 出资，公司法不管你用什么手段拿的钱，自己的也好、借的也好，只要如数缴足出资款即可。<br/><br/>7.办理验资报告：拿着银行出具的股东缴款单、银行盖章后的询征函，以及公司章程、核名通知、房租合同、房产证复印件，到会计师事务所办理验资报告。一般费用500元左右（50万以下注册资金）。<br/><br/>8.注册公司：到工商局领取公司设立登记的各种表格，包括设立登记申请表、股东（发起人）名单、董事经理监理情况、法人代表登记表、指定代表或委托代理人登记表。填好后，连同核名通知、公司章程、房租合同、房产证复印件、验资报告一起交给工商局。大概3个工作日后可领取执照。此项费用约300元左右。<br/><br/>9.凭营业执照，到公安局指定的刻章社，去刻公章、财务章。后面步骤中，均需要用到公章或财务章。<br/><br/>10.办理企业组织机构代码证：凭营业执照到技术监督局办理组织机构代码证，费用是80元。办这个证需要半个月，技术监督局会首先发一个预先受理代码证明文件，凭这个文件就可以办理后面的税务登记证、银行基本户开户手续了。<br/><br/>11.去银行开基本户：凭营业执照、组织机构代码证，去银行开立基本帐号。最好是在原来办理验资时的那个银行的同一网点去办理，否则，会多收100元的验资帐户费用。<br/>开基本户需要填很多表，你最好把能带齐的东西全部带上，要不然要跑很多趟，包括营业执照正本原件、身份证、组织机构代码证、公财章、法人章。<br/>开基本户时，还需要购买一个密码器（从2005年下半年起，大多银行都有这个规定），密码器需要280元。今后你的公司开支票、划款时，都需要使用密码器来生成密码。<br/><br/>12.办理税务登记：领取执照后，30日内到当地税务局申请领取税务登记证。一般的公司都需要办理2种税务登记证，即国税和地税。费用是各40元，共80元。<br/>办理税务登记证时，必须有一个会计，因为税务局要求提交的资料其中有一项是会计资格证和身份证。你可先请一个兼职会计，小公司刚开始请的兼职会计一般200元工资就可以了。<br/><br/>13.申请领购发票：如果你的公司是销售商品的，应该到国税去申请发票，如果是服务性质的公司，则到地税申领发票。<br/><br/>最后就开始营业了。 注意每个月按时向税务申报税哦，即使没有开展业务不需要缴税，也要进行零申报，否则会被罚款的。<br/><br/><br/>有二点你可能比较关心：<br/><br/>1.公司必须建立健全的会计制度，你可能担心自己不会，怎么办？刚开始成立的公司，业务少，对会计的工作量也非常小，你可以请一个兼职会计，每个月到你的公司帮你建帐，二、三天时间就够了，给他200-500左右的工资即可。<br/><br/>2.公司的税额：<br/>营业税：销售商品的公司，按所开发票额的4%征收增殖税；提供服务的公司，按所开发票额的5%征收营业税。<br/>所得税：对企业的纯利润征收18-33%的企业所得税。 小公司的利润不多，一般是18%。对企业所得税，做帐很关键，如果帐面上你的利润很多，那税率就高。所以，平常的购买设备都要开发票，你吃饭、坐车的票都留起来，可以做为你的企业运作成本。<br/><br/>二种税的区别：营业税是对营业额征税，不管你赚没有赚钱，只有发生了交易，开了发票，就要征税；所得税，是对利润征税，利润就是营业额扣减各种成本后剩余的钱，只有赚了钱，才会征所得税。<br/><br/>还有其它各种各样很多种的税，但没有多少钱，主要是上面二种，特别是所得税非常高 .]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=88</link>
			<title><![CDATA[2010-8-14惠东裸照]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[个人相册]]></category>
			<pubDate>Sun,15 Aug 2010 12:52:36 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=88</guid>
		<description><![CDATA[<img src="http://www.luckli.cn/attachments/month_1008/x2010815125218.JPG" border="0" alt=""/><br/><img src="http://www.luckli.cn/attachments/month_1008/c2010816122731.jpg" border="0" alt=""/><br/><img src="http://www.luckli.cn/attachments/month_1008/42010816122944.jpg" border="0" alt=""/><br/><img src="http://www.luckli.cn/attachments/month_1008/e2010816122555.jpg" border="0" alt=""/> <br/><img src="http://www.luckli.cn/attachments/month_1008/v2010815134331.JPG" border="0" alt=""/><br/><img src="http://www.luckli.cn/attachments/month_1008/72010816123323.jpg" border="0" alt=""/><br/><img src="http://www.luckli.cn/attachments/month_1008/82010816123332.jpg" border="0" alt=""/><br/><img src="http://www.luckli.cn/attachments/month_1008/42010816123339.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=87</link>
			<title><![CDATA[Win2003下IIS整合Tomcat(保证有效) ]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Fri,09 Jul 2010 10:52:09 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=87</guid>
		<description><![CDATA[完整文档下载地址: <a href="http://www.tykj.gov.cn/xxfb.nsf/892A66350DD594A0482570FF00461306/" target="_blank" rel="external">http://www.tykj.gov.cn/xxfb.nsf/892A66350DD594A0482570FF00461306/</a>$file/iistomcat.rar<br/><br/>Ø&nbsp;&nbsp;(15)、IIS+Tomcat（JK 推荐 07-11-11）<br/>需要使用tomcat的连接器，介绍见<a href="http://tomcat.apache.org/tomcat-4.1-doc/config/connectors.html" target="_blank" rel="external">http://tomcat.apache.org/tomcat-4.1-doc/config/connectors.html</a><br/><br/>操作系统WindowsServeer2003，tomcat-5.0.28，j2sdk1.4.2_08<br/><br/>测试环境安装路径：<br/><br/><br/>需要有连接器，在本机目录D:\01_XZY\01_StudyNotes\03_Java\03_JAVA常用类包\IIS+Tomcat连接器\JK-推荐<br/><br/>也可以从网上下载<a href="http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/" target="_blank" rel="external">http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/</a> ，目前最新的是isapi_redirect-1.2.9.dll<br/><br/>这里要保证IIS和Tomcat独立都能正常运行，如IIS的<a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a>和tomcat的<a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a>:8080/jsp-examples/都能访问<br/><br/>本节不解释Tomcat的配置和运行。<br/><br/>ü&nbsp;&nbsp;■1在tomcat的bin目录下新建目录jk\<br/>把isapi_redirect-1.2.9.dll拷贝到这个目录下<br/><br/>据网上说这个也可能有权限问题，不过我测试时没有给它设置特别的权限。<br/><br/>ü&nbsp;&nbsp;■2在tomcat的conf目录中创建2个文件<br/>workers.properties<br/><br/>————————————————————————————————————————<br/><br/>workers.tomcat_home=D:\JAVA\TOMCAT5\tomcat-5.0.28<br/><br/>workers.java_home=D:\JAVA\TOMCAT5\j2sdk1.4.2_08<br/><br/>ps=\ <br/><br/>worker.list=worker1<br/><br/>worker.worker1.port=8009&nbsp;&nbsp;<br/><br/>worker.worker1.host=localhost&nbsp;&nbsp;<br/><br/>worker.worker1.type=ajp13&nbsp;&nbsp;<br/><br/>worker.worker1.lbfactor=1&nbsp;&nbsp;<br/><br/>————————————————————————————————————————<br/><br/>uriworkermap.properties:说明了符合哪些条件的uri才能被转发到tomcat中<br/><br/>————————————————————————————————————————<br/><br/>/*=worker1<br/><br/>————————————————————————————————————————<br/><br/>可能的设置有：<br/><br/>/*=worker1&nbsp;&nbsp;#所有访问都转发到tomcat中<br/><br/>/*.jsp=worker1&nbsp;&nbsp;#所有*.jsp的才向tomcat转发<br/><br/>/jsp-examples/*=worker1&nbsp;&nbsp;#所有/jsp-examples/*的才向tomcat转发<br/><br/>!/*.gif=worker1 #所有的gif文件都不向tomcat转发，而由IIS处理，注意这表示是所有的而不仅仅是根下的<br/><br/> <br/><br/>一个办法：可以把IIS的根和Tomcat的根指向同一个目录（如果有虚拟目录则IIS和Tomcat中都要建立上，并且指向相同的目录），只允许/*.jsp=worker1存在，这样就实现了，所有的*.jsp由tomcat处理，其它的都由IIS处理。<br/><br/> <br/><br/> <br/><br/>ü&nbsp;&nbsp;■3导入注册表文件xzy.reg<br/>内容如下：<br/><br/>————————————————————————————————————————<br/><br/>Windows Registry Editor Version 5.00<br/><br/> <br/><br/>[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]<br/><br/>&#34;extension_uri&#34;=&#34;/jakarta/isapi_redirect-1.2.9.dll&#34;<br/><br/>&#34;log_file&#34;=&#34;D:\\JAVA\\TOMCAT5\\tomcat-5.0.28\\logs\\isapi.log &#34;<br/><br/>&#34;worker_file&#34;=&#34;D:\\JAVA\\TOMCAT5\\tomcat-5.0.28\\conf\\workers.properties&#34;<br/><br/>&#34;worker_mount_file&#34;=&#34;D:\\JAVA\\TOMCAT5\\tomcat-5.0.28\\conf\\uriworkermap.properties&#34;<br/><br/>&#34;log_level&#34;=&#34;realease&#34;<br/><br/>————————————————————————————————————————<br/><br/>双击运行这个文件，导入注册表中<br/><br/>日志被存放在 ，如果把&#34;log_level&#34;=&#34;realease&#34;改成&#34;log_level&#34;=&#34;debug&#34;日志里会增长的很快，里面写了转发的情况<br/><br/> <br/><br/>ü&nbsp;&nbsp;■4设置IIS默认网站的IsApi筛选器<br/><br/>指向文件D:\JAVA\TOMCAT5\tomcat-5.0.28\bin\jk\isapi_redirect-1.2.9.dll<br/><br/><br/>确定后是这个样子：<br/><br/>保存这些设置<br/><br/>ü&nbsp;&nbsp;■5在IIS中创建虚拟目录jakarta<br/>jakarta是一个规定的名字，必须这么创建，这个虚拟目录要指向isapi_redirect-1.2.9.dll所在的目录，并且设置为可执行IsApi<br/><br/><br/><br/><br/>ü&nbsp;&nbsp;■6在IIS的服务器扩展中添加允许isapi_redirect-1.2.9.dll执行<br/><br/>最后应为<br/><br/><br/>ü&nbsp;&nbsp;■7重启IIS和Tomcat进行测试<br/>重启IIS和Tomcat。<br/><br/>这时先看看IIS默认网站的IsApi的tomcat是否为绿色<br/><br/><br/>如果不是（好像刚刚配置万重启后总不是绿色）则访问<a href="http://127.0.0.1:8080" target="_blank" rel="external">http://127.0.0.1:8080</a> <a href="http://127.0.0.1:8080/jsp-examples/" target="_blank" rel="external">http://127.0.0.1:8080/jsp-examples/</a> <a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a> 把IIS和Tomcat的都访问访问，之后再看就是绿色的了？？？，之后即使重启计算机也是绿色的，如果有问题在事件查看器中可以看到筛选器的错误说明<br/><br/>绿色后就可以通过IIS访问Tomcat了，包括Tomcat的虚拟路径也可以。<br/><br/>IIS：&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a>/<br/><br/>tomcat：&nbsp;&nbsp;<a href="http://127.0.0.1/index.jsp" target="_blank" rel="external">http://127.0.0.1/index.jsp</a><br/><br/>注意只有在workers.properties中描述的uri才能被转发到tomcat上<br/><br/> <br/><br/> <br/><br/> <br/><br/>Ø&nbsp;&nbsp;(16)、IIS+Tomcat（JK2 不推荐）07-11-11<br/>操作系统WindowsServeer2003，tomcat-5.0.28，j2sdk1.4.2_08<br/><br/>测试环境安装路径：<br/><br/><br/>需要有连接器，在本机目录D:\01_XZY\01_StudyNotes\03_Java\03_JAVA常用类包\IIS+Tomcat连接器\JK2-不推荐<br/><br/>也可以从网上下载（<a href="http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip" target="_blank" rel="external">http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip</a>）。<br/><br/>这里要保证IIS和Tomcat独立都能正常运行，如IIS的<a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a>和tomcat的<a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a>:8080/jsp-examples/都能访问<br/><br/>在网站<a href="http://tomcat.apache.org/tomcat-4.1-doc/config/connectors.html" target="_blank" rel="external">http://tomcat.apache.org/tomcat-4.1-doc/config/connectors.html</a>看到jk2已经不推荐使用了，现在推荐的是jk，很奇怪，为什么jk2不推荐反而推荐jk。<br/><br/>本节不解释Tomcat的配置和运行。<br/><br/>ü&nbsp;&nbsp;■1在tomcat的bin目录下新建目录win32\i386<br/>把连接器中的isapi_redirector2.dll拷贝到这个目录中<br/><br/><br/>ü&nbsp;&nbsp;■2在tomcat的conf目录中创建2个文件<br/>jk2.properties：这个文件默认就存在，如果不存在则创建，内容如下：<br/><br/>————————————————————————————————————————<br/><br/>## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED<br/><br/>## WHEN YOU EDIT THE FILE.<br/><br/> <br/><br/>## COMMENTS WILL BE _LOST_<br/><br/> <br/><br/>## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.<br/><br/> <br/><br/># Set the desired handler list<br/><br/># handler.list=apr,request,channelJni<br/><br/>#<br/><br/># Override the default port for the socketChannel<br/><br/># channelSocket.port=8019<br/><br/># Default: <br/><br/># channelUnix.file=${jkHome}/work/jk2.socket<br/><br/># Just to check if the the config&nbsp;&nbsp;is working<br/><br/># shm.file=${jkHome}/work/jk2.shm<br/><br/> <br/><br/># In o&#114;der to enable jni use any channelJni directive<br/><br/># channelJni.disabled = 0<br/><br/># And one of the following directives:<br/><br/> <br/><br/># apr.jniModeSo=/opt/apache2/modules/mod_jk2.so<br/><br/> <br/><br/># If set to inprocess the mod_jk2 will Register natives itself<br/><br/># This will enable the starting of the Tomcat from mod_jk2<br/><br/># apr.jniModeSo=inprocess<br/><br/>————————————————————————————————————————<br/><br/>workers2.properties：这个文件没有，需要创建，内容如下：蓝色部分要根据实际情况改变<br/><br/>———————————————————————————————————————<br/><br/>[shm:]<br/><br/>info=Shared memory file. Required for multiprocess servers<br/><br/>file=D:\JAVA\TOMCAT5\tomcat-5.0.28\work\jk2.shm<br/><br/>size=1000000<br/><br/> <br/><br/>[channel.socket:localhost:8009]<br/><br/>info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol<br/><br/>tomcatId=localhost:8009<br/><br/> <br/><br/>[uri:/] <br/><br/>[uri:/*]&nbsp;&nbsp;<br/><br/> <br/><br/>————————————————————————————————————————<br/><br/>jk2.shm会在IIS设置好筛选器启动后自动创建，[uri:/*]之类的说明会在■8中说明，这个设置会促使筛选器把所有的地址都通过tomcat来处理，这个文件修改后必须重启IIS后才能生效<br/><br/>ü&nbsp;&nbsp;■3导入注册表文件xzy.reg<br/>内容如下：<br/><br/>————————————————————————————————————————<br/><br/>Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]<br/><br/>&#34;workersFile&#34;=&#34;D:\\JAVA\\TOMCAT5\\tomcat-5.0.28\\conf\\workers2.properties&#34;<br/><br/>&#34;extensionUri&#34;=&#34;/jakarta/isapi_redirector2.dll&#34;<br/><br/>&#34;logLevel&#34;=&#34;debug&#34;<br/><br/>&#34;serverRoot&#34;=&#34;D:\\JAVA\\TOMCAT5\\tomcat-5.0.28&#34;<br/><br/>————————————————————————————————————————<br/><br/>双击运行这个文件，导入注册表中<br/><br/>ü&nbsp;&nbsp;■4设置IIS默认网站的IsApi筛选器<br/><br/>指向文件D:\JAVA\TOMCAT5\tomcat-5.0.28\bin\win32\i386\isapi_redirector2.dll<br/><br/><br/>确定后是这个样子：<br/><br/>保存设置<br/><br/>ü&nbsp;&nbsp;■5在IIS中创建虚拟目录jakarta<br/>jakarta是一个规定的名字，必须这么创建，这个虚拟目录要指向isapi_redirector2.dll所在的目录，并且设置为可执行IsApi<br/><br/><br/><br/><br/>ü&nbsp;&nbsp;■6在IIS的服务器扩展中添加允许isapi_redirector2.dll执行<br/><br/>最后应为<br/><br/><br/>ü&nbsp;&nbsp;■7重启IIS和Tomcat进行测试<br/>重启IIS和Tomcat。<br/><br/>这时先看看IIS默认网站的IsApi的tomcat是否为绿色<br/><br/><br/>如果不是（好像刚刚配置万重启后总不是绿色）则访问<a href="http://127.0.0.1:8080" target="_blank" rel="external">http://127.0.0.1:8080</a> <a href="http://127.0.0.1:8080/jsp-examples/" target="_blank" rel="external">http://127.0.0.1:8080/jsp-examples/</a> <a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a> 把IIS和Tomcat的都访问访问，之后再看就是绿色的了？？？，之后即使重启计算机也是绿色的，可以看到jk2.shm已经被创建了，如果有问题在事件查看器中可以看到筛选器的错误说明<br/><br/><br/>绿色后就可以通过IIS访问Tomcat了，包括Tomcat的虚拟路径也可以。<br/><br/>IIS：&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://127.0.0.1" target="_blank" rel="external">http://127.0.0.1</a>/<br/><br/>tomcat：&nbsp;&nbsp;<a href="http://127.0.0.1/index.jsp" target="_blank" rel="external">http://127.0.0.1/index.jsp</a><br/><br/>这就会出现一个问题，如果ASP和tomcat中的路径重复了怎么办，下面说明<br/><br/><br/><br/> ]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=86</link>
			<title><![CDATA[使用HTTP代理服务器的安全性简评]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Thu,17 Jun 2010 17:24:04 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=86</guid>
		<description><![CDATA[　由于各种原因，在国内上网，免不了要和HTTP代理服务器打交道。HTTP代理服务器分加密代理服务器和普通代理服务器。如果我们在自己的电脑上运行了某些软件之后就能访问之前不能访问的网站，那么很可能是加密代理；如果我们直接在浏览器中设置代理服务器，不用运行任何软件，那么这种类型的代理服务器就是普通代理。一般来说，如果加密代理软件没有问题，加密代理的安全性要好于普通代理。在这里，本文主要还是讲述普通代理的安全性。<br/><br/>　　1、HTTP代理协议简介<br/><br/>　　浏览器和HTTP代理服务器之间是通过HTTP代理协议进行通讯的。如果我们没有使用运行在自己的电脑上的加密代理，而是直接在浏览器中设置了在互联网上的代理服务器地址，那么浏览器就和代理服务器之间进行的通讯就会发送到互联网上。代理服务器常见的请求有GET、POST和CONNECT，下面分别做介绍：<br/><br/>　　1.1、GET<br/><br/>　　如果我们通过代理服务器访问某个http协议的网站网页，那么浏览器就会向HTTP代理服务器发送GET请求。比如我们通过代理服务器访问 <a href="http://www.microsoft.com/" target="_blank" rel="external">http://www.microsoft.com/</a> ，那么浏览器就会向HTTP代理服务器发送数据：<br/><br/>　　GET <a href="http://www.microsoft.com/" target="_blank" rel="external">http://www.microsoft.com/</a> HTTP/1.1<br/>　　……<br/><br/>　　之后代理服务器取得数据后把网页返回给浏览器：<br/><br/>　　HTTP/1.1 200 OK<br/>　　……<br/>　　&lt;html&gt;<br/>　　……<br/><br/>　　我们来和没有使用代理服务器的情况对比一下，如果没有使用代理服务器，那么我们访问 <a href="http://www.microsoft.com/" target="_blank" rel="external">http://www.microsoft.com/</a> ，浏览器就会向 www.microsoft.com 这台服务器发送以下请求：<br/><br/>　　GET / HTTP/1.1<br/>　　……<br/><br/>　　服务器返回：<br/><br/>　　HTTP/1.1 200 OK<br/>　　……<br/>　　&lt;html&gt;<br/>　　……<br/><br/>　　我们看到，使用代理服务器之后，GET请求和返回的格式基本没有变化，是否使用代理服务器的安全性上基本没有差异。<br/><br/>　　1.2、POST<br/><br/>　　当我们在使用http协议的网站上提交表单时（比如网站上的用户登陆表单，填写好用户名和口令，然后点登陆，就把表单提交到服务器了），如果表单类型是POST（大多数表单类型都为POST，不过搜索引擎的搜索表单好像都是GET类型的），那么浏览器就会向代理服务器发送POST请求。比如在 <a href="http://www.williamlong.info/archives/2209.html" target="_blank" rel="external">http://www.williamlong.info/archives/2209.html</a> 中进行评论，数据会提交到 <a href="http://www.williamlong.info/cmd.asp?act=cmt" target="_blank" rel="external">http://www.williamlong.info/cmd.asp?act=cmt</a>&amp;key=a666b083 ，如果我们使用HTTP代理服务器，以下请求会发送到代理服务器：<br/><br/>　　POST <a href="http://www.williamlong.info/cmd.asp?act=cmt" target="_blank" rel="external">http://www.williamlong.info/cmd.asp?act=cmt</a>&amp;key=a666b083 HTTP/1.1<br/>　　……<br/>　　[提交的评论数据]<br/><br/>　　如果没有使用代理服务器，那么以下POST请求直接发送到 www.williamlong.info 服务器：<br/><br/>　　POST /cmd.asp?act=cmt&amp;key=a666b083 HTTP/1.1<br/>　　……<br/>　　[提交的评论数据]<br/><br/>　　使用代理服务器和没有使用代理服务器的返回结果也是基本一致的。所以POST请求在是否使用代理服务器的安全性上也是基本没有差异的。<br/><br/>　　1.3、CONNECT<br/><br/>　　当我们访问https协议的网站时，浏览器会向代理服务器发送CONNECT请求。比如我们访问 <a href="https://mail.google.com/mail/?shva=1" target="_blank" rel="external">https://mail.google.com/mail/?shva=1</a>#inbox 时，浏览器会向代理服务器发送以下请求：<br/><br/>　　CONNECT mail.google.com:443 HTTP/1.0<br/>　　……<br/><br/>　　之后服务器返回：<br/><br/>　　HTTP/1.1 200 Connection established<br/>　　……<br/><br/>　　然后浏览器开始向代理服务器发送加密的数据，使用的是 mail.google.com 的SSL证书。代理服务器把 mail.google.com 返回的加密数据原原本本的返回给浏览器。<br/><br/>　　如果没有使用代理服务器，那么浏览器直接连接 mail.google.com:443 ，然后开始发送和接收加密数据。<br/><br/>　　我们看到，使用了HTTP代理服务器之后，HTTPS协议传输的内容仍旧是端到端加密的，HTTPS仍旧保持了传输的内容不被任何负责传输数据的设备（包括代理服务器）看到的特性。是否使用代理服务器对HTTPS协议的安全性没有变化。<br/><br/>　　2、深入讨论<br/><br/>　　Q：我们看到，使用了代理服务器之后，都会把需要访问网站的域名（包括https的）发送给代理服务器，这样如果网络受到监视，就能知道我们在访问什么网站（但https协议监控不到传输的内容，只能知道我们访问了这个网站），这样是否降低了安全性？<br/>　　A：如果我们的网络受到监视，所有的网络数据包都被记录，那么如果不用代理服务器，浏览器也会首先去发送查询域名所对应的IP的DNS请求，还会在得到IP后发送TCP连接请求到需要访问的网站，通过网络数据包监视一样可以知道我们在访问什么网站。<br/><br/>　　Q：有些代理服务器产品声称能够记录HTTPS传输的内容，是怎么做到的呢？<br/>　　A：使用了SSL劫持的手段。这些代理服务器产品无一例外需要安装对应的客户端，一旦安装了这些客户端，就能控制客户端电脑，进而安装代理服务器自己的证书，进行SSL劫持。有些产品不需安装客户端，但客户端浏览器访问所有的HTTPS网站时都通不过浏览器的SSL证书验证，浏览器都会给出证书无效的警告。<br/><br/>　　Q：如果我们原先不能访问某个网站，使用了代理服务器可以放问这个网站了，这个网站是http协议的，这样访问这个网站所有的行为在受监控的网络环境内都会被记录吧？<br/>　　A：是的。因为代理服务器不改变HTTP协议的安全性，所以所有明文传输的内容都能被监控系统记录下来。所以，我们使用代理服务器提交重要信息（比如用户名和口令）时，都要选择HTTPS协议，在输入用户名和口令时需要注意浏览器的地址栏是不是以https开头的。<br/><br/>　　Q：使用了代理服务器后，网络数据包所经过的路和没有使用代理服务器时不同，对安全性有什么影响呢？<br/>　　A：这要取决于使用了代理服务器前后中所经过的路中的每一个节点了。即使不使用代理服务器，国内上网仍旧会面临各种人为网络故障，使用代理服务器后因为经过的路不同，所以有可能还是需要面对这些人为网络故障，也有可能不需要面对这些人为网络故障了（如果代理服务器本身特意解决了这些故障）。<br/><br/>　　3、总结<br/><br/>　　综合上述，使用远程HTTP代理服务器的安全性和不使用代理服务器相比基本没有什么差别，我们面对的人为网络故障在使用了代理服务器后也有可能依然存在，也有可能减少甚至消失了。如果有人在国内提供解决了人为网络故障的代理服务器，给一些不会使用或无法使用加密代理软件的人用，结合《如何使用代理服务器》和AutoProxy，那么全民代理的时代说不定会到来哦。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=85</link>
			<title><![CDATA[中国团购网站的野蛮时代]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Thu,17 Jun 2010 17:22:14 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=85</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无论是Blogger、Youtube、Facebook、Twitter，都引发了中国创业者的大量复制。迅速窜红的社会化团购网站Groupon仍然延续了这种趋势，不过这次创业者的复制速度明显要快得多，短短三个月内，国内团购网站已多达150家左右，多数团购网站更是集中在北京、上海、广州和深圳等地区，有网友戏称“百团大战”。<br/><br/>　　市场的钱景固然一片美好，不过在表面的风光之下，团购网站似乎正在陷入一种无法自拔的境地。<br/><br/>　　1.同质化太严重<br/><br/>　　国内的团购类网站，和Groupon基本都长得一模一样。更为严重的是，他们都是完全照搬Groupon的团购模式，通过低价吸引用户、通过用户吸引商家。<br/><br/>　　这样的竞争最后就会变成资本和资源的肉搏战，如果不找到一种独特的商业模式，很难从中脱颖而出。<br/><br/>　　2.门槛太低 成本太高<br/><br/>　　团购网站之所以在国内如春笋出土般快速涌现，最为称道的一点就是进入门槛低，几万块钱找几个技术人员很快就可以做出来。<br/><br/>　　但正是由于进入门槛低，竞争对手的数量就会空前庞大，这意味着市场就会变成消费者市场，因为你需要花费更多的成本去推广和争取消费者，这部分成本将会是网站开发成本的数倍。<br/><br/>　　如果没有足够的资金和资源支持，预计大量团购类网站会快速死掉，这个临界点很可能会在半年以后。<br/><br/>　　天欲使其灭亡，必先使其疯狂。来得越猛，死得越快，就是这个理。<br/><br/>　　3.粘性太低 回头客太少<br/><br/>　　国内团购网站都主打低价模式，大多数用户是冲着低价这个点来的。那么如果另外一个网站有更低的价格，那么用户会很轻易地背叛，虽然很多团购网站通过积分等方式提高用户粘性，但是这仍然是团购网站无法回避的伤痛。<br/><br/>　　反之，对于商家来说，团购网站的用户大多是冲着低价来的，大多数人回家的第一件事情就是看看明天还有什么低价团购。这意味着商家的低价策略，并不一定能够换来忠实的回头客。在新鲜劲儿过去之后，团购网站对于商家的吸引力将会进一步降低。<br/><br/>　　4.利润率低 难受资本青睐<br/><br/>　　虽然有句对VC的调侃是：越有风险越要投资，没有风险绝不投资。但是对于目前模式尚不清晰的国内团购网站来说，资本大多持保守态度。<br/><br/>　　假设商家在这里团购了100条牛仔裤，每条赚10块钱也才1000块钱，想要抵消运营成本都很难。你不要指望着商家提供更多的数量，因为也许真的是卖得越多，赔得越多。利润率太低，是卡在团购网站喉咙的一根尖刺。<br/><br/>　　假设风险投资投入一千万，那么按照现在团购网站的阵势，估计没个五六年都很难收回投资。而且这还是顺利从一百多家团购网站中突围的预期，如果是直接在竞争中不敌，那么投资方的钱就等于直接打了水漂。<br/><br/><br/><br/>　　——结束的分割线——<br/><br/>　　在团购类网站风风火火的表面，不知道掩盖了多少的腥风血雨、明枪暗箭。我们倒不如转换一下思维，做一下团购网站的周边配套服务。<br/><br/>　　别人做网购，咱们做快递；别人做汽车，咱们做维修；别人做手机，我做周边。差异化竞争和逆向思维，绝对是攻城略地的神兵利器。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=84</link>
			<title><![CDATA[网站改版的需要注意的几个要点]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Thu,17 Jun 2010 17:15:20 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=84</guid>
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;改版，是一个问题。越来越多互联网公司产品人员意识到这个问题，无论是豆瓣的改版，还是Facebook的改版都遭到了用户的疯狂抵制。<br/><br/>　　和传统1.0网站相比，2.0网站用户的力量被无限放大，也意味着用户在网站发展中拥有越来越多的话语权。任何的所谓改版，都会一定程度上影响已有用户的使用习惯，可能遭到用户的大规模抨击。<br/><br/>　　这意味着，网站改版也许需要更多的智慧和精细化运作。<br/><br/>　　为什么需要改版？<br/><br/>　　一个网站刚成立的时候，总是陌生和懵懂，对于网站的核心价值有着最忠实的体现，这时候的网站可以被称为产品的初级阶段。<br/><br/>　　伴随着用户需求和商业需求的变更，我们会给网站逐步作一些调整，以便更适应网站一步步发展的需求。当这些小的改变积累到一定程度，之前所做的产品界面设计和网站架构已经不能适应需求，这时候就需要改版。<br/><br/>　　这一过程有点类似操作系统，我们刚开始接触XP的时候发现很爽，但是随着时间的进步XP越来越不能满足我们得需求，这时候微软就会给它打一些大大小小的补丁，以便它能够更好地工作。但是如果有一天，XP真的不能满足用户和公司商业价值的需要，那么这时候就需要推出下一版操作系统，就是现在正在普及的Windows 7.<br/><br/>　　网站改版是为两个东西服务：用户需求和商业需求。如何顺利的改版，我们来看一下有哪些需要注意的要点。<br/><br/>　　1. 改版前做好需求调查<br/><br/>　　网站改版和很多产品开发一样，会遇到需求不断变更的情况，这意味着很多时候可能需要重复劳动，甚至有些需要完全推倒重做。<br/><br/>　　所以这时候就突出了改版需求调查的重要性，你需要从用户调查、数据挖掘等方式收集用户对功能的需求，同时你也需要和管理层确认有关公司整体发展的改版需求，然后把几方面的改版需求作汇总整理，供改版的时候使用。<br/><br/>　　完善的需求调查，对于网站改版的积极意义主要有两方面：一是让产品团队在进行产品设计和开发的过程中，做到心里有数；二是减少由于需求变更带来的时间和用户损失。<br/><br/>　　2. 能不改尽量不改<br/><br/>　　网站改版的过程中，可能会影响用户使用习惯部分，能不改尽量不改。网站改版是为了做加法，为了让网站越来越好，而不是做减法。<br/><br/>　　而用户的好恶，正是检验网站改版是否成功的一个重要标准。所以如果，有一些受到好评的功能，如果与商业利益或者高层意志相左，最好能够保全用户的使用习惯，再不济也要给用户足够的适应时间。<br/><br/>　　3. 渐进式演进<br/><br/>　　多网站改版，高层很喜欢沉浸在整站焕然一新的喜悦之中。但是这种彻头彻尾的改版，往往会导致用户的大量流失，辛辛苦苦培养的用户可能会因为冒进的改版消失殆尽。网站越大，损失越重。<br/><br/>　　有一个很著名的实验叫&#34;温水煮青蛙&#34;，我们的改版也要稳稳地一步步进行，给用户一段时间去缓冲，让用户学习和适应新功能。<br/><br/>　　如果需要改五个频道，那就一个一个频道地改；如果需要改十个功能，那就一个一个功能地改。<br/><br/>　　在改版之前应该先吹风，让用户知道哪些功能会改，会改成什么样，改过之后有什么好处。然后在这个过程中你们可以收到用户关于改版的各种看法，然后籍此评判改版的可行性。<br/><br/>　　4. 上线并不意味着改版的结束<br/><br/>　　很多朋友，在网站改版上线之后，总会松一口气，然后心理说总算完了。<br/><br/>　　但改版是手段而不是目的，迎合用户和满足商业需求才是重点。这也就意味着上线不是终点，而是一个新起点。<br/><br/>　　然后大家应该广泛收集各方关于改版的看法，这些看法的来源包括但不仅限于用户、同事、业界友人，从中筛选出合理的建议，然后再对网站进行调整和改进。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=83</link>
			<title><![CDATA[MsSql中文乱码-更改排序规则即可]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Thu,20 May 2010 11:22:36 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=83</guid>
		<description><![CDATA[1.sp_helpsort <br/>Sel&#101;ct SERVERPROPERTY (&#39;Collation&#39;) <br/>查看你的排序规则. <br/>不过你的这个应该和字符集有关.<br/><br/>2.更改服务器排序规则 <br/>更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂，包括以下步骤： <br/><br/>确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。 <br/>使用工具（例如大容量复制）导出所有数据。 <br/>删除所有用户数据库。 <br/>重新生成在 setup 命令的 SQLCOLLATION 属性中指定新的排序规则的 master 数据库。例如： <br/>复制代码 <br/>start /wait setup.exe /qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=test SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI <br/>有关重新生成 master 数据库的详细信息，请参阅如何重新生成 SQL Server 2005 的 Master 数据库。 <br/>创建所有数据库及这些数据库中的所有对象。 <br/>导入所有数据。 <br/>注意：&nbsp;&nbsp;<br/>可以为创建的每个新数据库指定默认排序规则，而不更改 SQL Server 2005 实例的默认排序规则。 <br/><br/>3.设置和更改数据库排序规则 <br/>创建新数据库时，可以使用下列内容之一指定排序规则： <br/>Cr&#101;ate DATABASE 语句的 COLLATE 子句。 <br/>SQL Server Management Studio. <br/>SQL 管理对象 (SMO) 中的 Database.Collation 属性。 <br/>如果未指定排序规则，则使用服务器排序规则。 <br/>可以使用 Alt&#101;r DATABASE 语句的 COLLATE 子句来更改在用户数据库中创建的任何新对象的排序规则。使用此语句不能更改任何现有用户定义的表中列的排序规则。使用 Alt&#101;r TABLE 的 COLLATE 子句可以更改这些列的排序规则。 <br/>更改数据库排序规则时，需要更改下列内容： <br/>数据库的默认排序规则，这一新的默认排序规则将应用于数据库中后续创建的所有列、用户定义的数据类型、变量和参数。根据数据库中定义的对象解析 SQL 语句中指定的对象标识符时，也使用新的默认排序规则。 <br/>将系统表中的任何 char、varchar、text、nchar、nvarchar 或 ntext 列更改为使用新的排序规则。 <br/>将存储过程和用户定义函数的所有现有 char、varchar、text、nchar、nvarchar 或 ntext 参数和标量返回值更改为使用新的排序规则。 <br/>将 char、varchar、text、nchar、nvarchar 或 ntext 系统数据类型和基于这些系统数据类型的所有用户定义的数据类型更改为使用新的默认排序规则。 <br/><br/>SQL code :<br/><br/>1.将数据库的字符集修改为：<br/>alt&#101;r database dbname collate Chinese_PRC_CI_AS<br/><br/>2.<br/><br/>--1. 为数据库指定排序规则<br/>Cr&#101;ate DATABASE db COLLATE Chinese_PRC_CI_AS<br/>GO<br/><br/>Alt&#101;r DATABASE db COLLATE Chinese_PRC_BIN<br/>GO<br/><br/><br/>/*====================================*/<br/><br/><br/>--2. 为表中的列指定排序规则<br/>Cr&#101;ate TABLE tb(<br/>col1 varchar(10),<br/>col2 varchar(10) COLLATE Chinese_PRC_CI_AS)<br/>GO<br/><br/>Alt&#101;r TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN<br/>GO<br/><br/>Alt&#101;r TABLE tb Alt&#101;r COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN<br/>GO<br/><br/><br/>/*====================================*/<br/><br/><br/>--3. 为字符变量和参数应用排序规则<br/>DECLARE @a varchar(10),@b varchar(10)<br/>Sel&#101;ct @a=&#39;a&#39;,@b=&#39;A&#39;<br/><br/>--使用排序规则 Chinese_PRC_CI_AS<br/>Sel&#101;ct CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN &#39;@a=@b&#39; ELSE &#39;@a&lt;&gt;@b&#39; END<br/>--结果a=@b<br/><br/>--使用排序规则 Chinese_PRC_BIN<br/>Sel&#101;ct CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN &#39;@a=@b&#39; ELSE &#39;@a&lt;&gt;@b&#39; END<br/>--结果a&lt;&gt;@b<br/><br/><br/>3.<br/>表<br/>Alt&#101;r&nbsp;&nbsp; TABLE&nbsp;&nbsp; tb<br/>&nbsp;&nbsp;Alt&#101;r&nbsp;&nbsp; COLUMN&nbsp;&nbsp; colname&nbsp;&nbsp; nvarchar(100)&nbsp;&nbsp; COLLATE&nbsp;&nbsp; Chinese_PRC_CI_AS&nbsp;&nbsp;<br/>--不区分大小写<br/>Alt&#101;r&nbsp;&nbsp; TABLE&nbsp;&nbsp; tb&nbsp;&nbsp;<br/>&nbsp;&nbsp;Alt&#101;r&nbsp;&nbsp; COLUMN&nbsp;&nbsp; colname&nbsp;&nbsp; nvarchar(100)&nbsp;&nbsp; COLLATE&nbsp;&nbsp; Chinese_PRC_CS_AS&nbsp;&nbsp;<br/>--区分大小写<br/>数据库<br/>Alt&#101;r&nbsp;&nbsp; DATABASE&nbsp;&nbsp; database&nbsp;&nbsp;<br/>COLLATE&nbsp;&nbsp; Chinese_PRC_CS_AS&nbsp;&nbsp;<br/>--区分大小写<br/><br/>Alt&#101;r&nbsp;&nbsp; DATABASE&nbsp;&nbsp; database COLLATE Chinese_PRC_CI_AS --不区分大小写<br/><br/><br/>方法一.安装SQL时选择区分大小写<br/>或安装完以后重建mastar，选择区分大小<br/>Crogram&nbsp;&nbsp; FilesMicrosoft&nbsp;&nbsp; SQL&nbsp;&nbsp; Server80ToolsBinn<br/>ebuildm.exe<br/><br/>方法二.sql&nbsp;&nbsp; server&nbsp;&nbsp; 8.0以上的版本才可以，7.0及其以下不支持<br/>alt&#101;r&nbsp;&nbsp; database&nbsp;&nbsp; 数据库&nbsp;&nbsp; COLLATE&nbsp;&nbsp; Chinese_PRC_CS_AS<br/>修改排序规则，改成大小写敏感的排序规则<br/>如果只修改一个表，用alt&#101;r&nbsp;&nbsp; table语句&nbsp;&nbsp;<br/>如果修改一个库的默认排序规则，用alt&#101;r&nbsp;&nbsp; datebase语句&nbsp;&nbsp;<br/>如果修改整个服务器的默认排序规则，用Rebuildm.exe重建master库&nbsp;&nbsp;<br/>--指定排序规则就可以了<br/><br/>--示例&nbsp;&nbsp;<br/>sel&#101;ct&nbsp;&nbsp; replace(&#39;AbacB&#39;&nbsp;&nbsp; collate&nbsp;&nbsp; Chinese_PRC_CS_AS_WS,&#39;B&#39;,&#39;test&#39;)&nbsp;&nbsp;<br/><br/>--如果你是要求表支持,则可以建表时指定排序规则,这样replace就不用写排序规则了&nbsp;&nbsp;<br/><br/>--示例&nbsp;&nbsp;<br/>cr&#101;ate&nbsp;&nbsp; table&nbsp;&nbsp; tb(a&nbsp;&nbsp; varchar(20)&nbsp;&nbsp; collate&nbsp;&nbsp; Chinese_PRC_CS_AS_WS)&nbsp;&nbsp;<br/>ins&#101;rt&nbsp;&nbsp; tb&nbsp;&nbsp; values(&#39;Abac&#39;)&nbsp;&nbsp;<br/><br/>sel&#101;ct&nbsp;&nbsp; replace(a,&#39;a&#39;,&#39;test&#39;)&nbsp;&nbsp; from&nbsp;&nbsp; tb<br/><br/>dro&#112;&nbsp;&nbsp; table&nbsp;&nbsp; tb<br/><br/>指定排序规则即可<br/><br/>Windows&nbsp;&nbsp; 排序规则名称&nbsp;&nbsp;<br/>在&nbsp;&nbsp; COLLATE&nbsp;&nbsp; 子句中指定&nbsp;&nbsp; Windows&nbsp;&nbsp; 排序规则名称。Windows&nbsp;&nbsp; 排序规则名称由排序规则指示器和比较风格构成。&nbsp;&nbsp;<br/><br/>语法&nbsp;&nbsp;<br/>&lt;&nbsp;&nbsp; Windows_collation_name&nbsp;&nbsp; &gt;&nbsp;&nbsp; ::&nbsp;&nbsp; =&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CollationDesignator_ &lt;ComparisonStyle&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&nbsp;&nbsp; ComparisonStyle&nbsp;&nbsp; &gt;&nbsp;&nbsp; ::=&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CaseSensitivity_AccentSensitivity&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[_KanatypeSensitive&nbsp;&nbsp; [_WidthSensitive&nbsp;&nbsp; ]&nbsp;&nbsp; ]&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; _BIN&nbsp;&nbsp;<br/><br/>参数&nbsp;&nbsp;<br/>CollationDesignator&nbsp;&nbsp;<br/><br/>指定&nbsp;&nbsp; Windows&nbsp;&nbsp; 排序规则使用的基本排序规则。基本排序规则包括：&nbsp;&nbsp;<br/><br/>当指定按字典排序时应用其排序规则的字母表或语言<br/><br/><br/>用于存储非&nbsp;&nbsp; Unicode&nbsp;&nbsp; 字符数据的代码页。&nbsp;&nbsp;<br/>例如&nbsp;&nbsp; Latin1_General&nbsp;&nbsp; 或法文，两者都使用代码页&nbsp;&nbsp; 1252，或土耳其文，它使用代码页&nbsp;&nbsp; 1254。&nbsp;&nbsp;<br/><br/>CaseSensitivity<br/><br/>CI&nbsp;&nbsp; 指定不区分大小写，CS&nbsp;&nbsp; 指定区分大小写。<br/><br/>AccentSensitivity<br/><br/>AI&nbsp;&nbsp; 指定不区分重音，AS&nbsp;&nbsp; 指定区分重音。<br/><br/>KanatypeSensitive<br/><br/>Omitted&nbsp;&nbsp; 指定不区分大小写，KS&nbsp;&nbsp; 指定区分假名类型。<br/><br/>WidthSensitivity<br/><br/>Omitted&nbsp;&nbsp; 指定不区分大小写，WS&nbsp;&nbsp; 指定区分大小写。<br/><br/>BIN<br/><br/>指定使用二进制排序次序。&nbsp;&nbsp;<br/><br/><br/>如果你只是目前查询区分，那么还是不要这样改，免得又反悔，如此查询：<br/>sel&#101;ct&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; a&nbsp;&nbsp;<br/>/*<br/>a_nam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a_add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>----------&nbsp;&nbsp; ----------&nbsp;&nbsp;<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aa<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cc<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vv<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kk<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dd<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ee<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dd<br/>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ee<br/>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yy<br/>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yy<br/><br/>(11&nbsp;&nbsp; row(s)&nbsp;&nbsp; affected)<br/>*/<br/>现在我们查询a_add&nbsp;&nbsp; =&nbsp;&nbsp; &#39;aa&#39;的，&#39;Aa&#39;等等不行！<br/>Example&nbsp;&nbsp; 1：<br/><br/>sel&#101;ct&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; a&nbsp;&nbsp;<br/>wh&#101;re&nbsp;&nbsp; a_add&nbsp;&nbsp; collate&nbsp;&nbsp; Chinese_PRC_CS_AS_WS&nbsp;&nbsp; =&nbsp;&nbsp; &#39;aa&#39;&nbsp;&nbsp;<br/>/*<br/>a_nam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a_add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>----------&nbsp;&nbsp; ----------&nbsp;&nbsp;<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aa<br/><br/>(1&nbsp;&nbsp; row(s)&nbsp;&nbsp; affected)<br/>*/<br/><br/>Example&nbsp;&nbsp; 2：<br/><br/>sel&#101;ct&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; a&nbsp;&nbsp;<br/>wh&#101;re&nbsp;&nbsp; a_add&nbsp;&nbsp; collate&nbsp;&nbsp; Chinese_PRC_CS_AS_WS&nbsp;&nbsp; =&nbsp;&nbsp; &#39;Aa&#39;&nbsp;&nbsp;<br/>/*<br/>a_nam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a_add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>----------&nbsp;&nbsp; ----------&nbsp;&nbsp;<br/><br/>(0&nbsp;&nbsp; row(s)&nbsp;&nbsp; affected)<br/>*/<br/><br/>方法三.上面的记不住，那么就用最笨的方法，转化为ascii<br/>sel&#101;ct&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; a<br/>wh&#101;re&nbsp;&nbsp;<br/>ascii(substring(a_add,1,1))&nbsp;&nbsp; =&nbsp;&nbsp; ascii(substring(&#39;Aa&#39;,1,1))<br/>and&nbsp;&nbsp;<br/>ascii(substring(a_add,2,1))&nbsp;&nbsp; =&nbsp;&nbsp; ascii(substring(&#39;Aa&#39;,2,1))<br/>/*<br/>a_nam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a_add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>----------&nbsp;&nbsp; ----------&nbsp;&nbsp;<br/><br/>(0&nbsp;&nbsp; row(s)&nbsp;&nbsp; affected)<br/>*/<br/><br/>方法三：任何版本都可以<br/>sel&#101;ct&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; a&nbsp;&nbsp;<br/>wh&#101;re&nbsp;&nbsp; cast(a_add&nbsp;&nbsp; as&nbsp;&nbsp; varbinary(10))=&nbsp;&nbsp; cast(&#39;aa&#39;&nbsp;&nbsp; as&nbsp;&nbsp; varbinary(10)) <br/> <br/>]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=82</link>
			<title><![CDATA[自定义MIME类型支持FLV的相关设置]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Wed,19 May 2010 14:45:18 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=82</guid>
		<description><![CDATA[网络空间支持FLV的相关设置其实很简单，就是自定义一个MIME类型<br/><br/>一般虚拟主机管理里面都有这个选项<br/>自定义MIME类型<br/><br/>扩展名： .flv<br/>MIME类型： flv-application/octet-stream<br/><br/>如果直接在服务器上设置，按照如下步骤操作<br/>单击【开始】→【程序】→【管理工具】→【IIS管理器】，逐步展开“本地计算机”、“网站”，在你的网站上右击，选择【属性】，单击“HTTP头”选项卡→单击“MIME类型”按钮，再单击“新建”按钮，在“扩展名”框内输入“.flv”，“MIME类型”框中输入“flv-application/octet-stream”，然后确定即可。<br/><br/>“MIME类型”只是一个描述，决定文件的打开方式，可以随意输入。<br/><br/>常见的MIME类型<br/>application/vnd.lotus-1-2-3<br/><br/><br/>3gp video/3gpp<br/>aab application/x-authoware-bin<br/>aam application/x-authoware-map<br/>aas application/x-authoware-seg<br/>ai application/postscript<br/>aif audio/x-aiff<br/>aifc audio/x-aiff<br/>aiff audio/x-aiff<br/>als audio/X-Alpha5<br/>amc application/x-mpeg<br/>ani application/octet-stream<br/>asc text/plain<br/>asd application/astound<br/>asf video/x-ms-asf<br/>asn application/astound<br/>asp application/x-asap<br/>asx video/x-ms-asf<br/>au audio/basic<br/>avb application/octet-stream<br/>avi video/x-msvideo<br/>awb audio/amr-wb<br/>bcpio application/x-bcpio<br/>bin application/octet-stream<br/>bld application/bld<br/>bld2 application/bld2<br/>bmp application/x-MS-bmp<br/>bpk application/octet-stream<br/>bz2 application/x-bzip2<br/>cal image/x-cals<br/>ccn application/x-cnc<br/>cco application/x-cocoa<br/>cdf application/x-netcdf<br/>cgi magnus-internal/cgi<br/>chat application/x-chat<br/>class application/octet-stream<br/>clp application/x-msclip<br/>cmx application/x-cmx<br/>co application/x-cult3d-object<br/>cod image/cis-cod<br/>cpio application/x-cpio<br/>cpt application/mac-compactpro<br/>crd application/x-mscardfile<br/>csh application/x-csh<br/>csm chemical/x-csml<br/>csml chemical/x-csml<br/>css text/css<br/>cur application/octet-stream<br/>dcm x-lml/x-evm<br/>dcr application/x-director<br/>dcx image/x-dcx<br/>dhtml text/html<br/>dir application/x-director<br/>dll application/octet-stream<br/>dmg application/octet-stream<br/>dms application/octet-stream<br/>doc application/msword<br/>dot application/x-dot<br/>dvi application/x-dvi<br/>dwf drawing/x-dwf<br/>dwg application/x-autocad<br/>dxf application/x-autocad<br/>dxr application/x-director<br/>ebk application/x-expandedbook<br/>emb chemical/x-embl-dl-nucleotide<br/>embl chemical/x-embl-dl-nucleotide<br/>eps application/postscript<br/>eri image/x-eri<br/>es audio/echospeech<br/>esl audio/echospeech<br/>etc application/x-earthtime<br/>etx text/x-setext<br/>evm x-lml/x-evm<br/>evy application/x-envoy<br/>exe application/octet-stream<br/>fh4 image/x-freehand<br/>fh5 image/x-freehand<br/>fhc image/x-freehand<br/>fif image/fif<br/>fm application/x-maker<br/>fpx image/x-fpx<br/>fvi video/isivideo<br/>gau chemical/x-gaussian-input<br/>gca application/x-gca-compressed<br/>gdb x-lml/x-gdb<br/>gif image/gif<br/>gps application/x-gps<br/>gtar application/x-gtar<br/>gz application/x-gzip<br/>hdf application/x-hdf<br/>hdm text/x-hdml<br/>hdml text/x-hdml<br/>hlp application/winhlp<br/>hqx application/mac-binhex40<br/>htm text/html<br/>html text/html<br/>hts text/html<br/>ice x-conference/x-cooltalk<br/>ico application/octet-stream<br/>ief image/ief<br/>ifm image/gif<br/>ifs image/ifs<br/>imy audio/melody<br/>ins application/x-NET-Install<br/>ips application/x-ipscript<br/>ipx application/x-ipix<br/>it audio/x-mod<br/>itz audio/x-mod<br/>ivr i-world/i-vrml<br/>j2k image/j2k<br/>jad text/vnd.sun.j2me.app-descriptor<br/>jam application/x-jam<br/>jar application/java-archive<br/>jnlp application/x-java-jnlp-file<br/>jpe image/jpeg<br/>jpeg image/jpeg<br/>jpg image/jpeg<br/>jpz image/jpeg<br/>js application/x-javascript<br/>jwc application/jwc<br/>kjx application/x-kjx<br/>lak x-lml/x-lak<br/>latex application/x-latex<br/>lcc application/fastman<br/>lcl application/x-digitalloca<br/>lcr application/x-digitalloca<br/>lgh application/lgh<br/>lha application/octet-stream<br/>lml x-lml/x-lml<br/>lmlpack x-lml/x-lmlpack<br/>lsf video/x-ms-asf<br/>lsx video/x-ms-asf<br/>lzh application/x-lzh<br/>m13 application/x-msmediaview<br/>m14 application/x-msmediaview<br/>m15 audio/x-mod<br/>m3u audio/x-mpegurl<br/>m3url audio/x-mpegurl<br/>ma1 audio/ma1<br/>ma2 audio/ma2<br/>ma3 audio/ma3<br/>ma5 audio/ma5<br/>man application/x-troff-man<br/>map magnus-internal/imagemap<br/>mbd application/mbedlet<br/>mct application/x-mascot<br/>mdb application/x-msaccess<br/>mdz audio/x-mod<br/>me application/x-troff-me<br/>mel text/x-vmel<br/>mi application/x-mif<br/>mid audio/midi<br/>midi audio/midi<br/>mif application/x-mif<br/>mil image/x-cals<br/>mio audio/x-mio<br/>mmf application/x-skt-lbs<br/>mng video/x-mng<br/>mny application/x-msmoney<br/>moc application/x-mocha<br/>mocha application/x-mocha<br/>mod audio/x-mod<br/>mof application/x-yumekara<br/>mol chemical/x-mdl-molfile<br/>mop chemical/x-mopac-input<br/>mov video/quicktime<br/>movie video/x-sgi-movie<br/>mp2 audio/x-mpeg<br/>mp3 audio/x-mpeg<br/>mp4 video/mp4<br/>mpc application/vnd.mpohun.certificate<br/>mpe video/mpeg<br/>mpeg video/mpeg<br/>mpg video/mpeg<br/>mpg4 video/mp4<br/>mpga audio/mpeg<br/>mpn application/vnd.mophun.application<br/>mpp application/vnd.ms-project<br/>mps application/x-mapserver<br/>mrl text/x-mrml<br/>mrm application/x-mrm<br/>ms application/x-troff-ms<br/>mts application/metastream<br/>mtx application/metastream<br/>mtz application/metastream<br/>mzv application/metastream<br/>nar application/zip<br/>nbmp image/nbmp<br/>nc application/x-netcdf<br/>ndb x-lml/x-ndb<br/>ndwn application/ndwn<br/>nif application/x-nif<br/>nmz application/x-scream<br/>nokia-op-logo image/vnd.nok-oplogo-color<br/>npx application/x-netfpx<br/>nsnd audio/nsnd<br/>nva application/x-neva1<br/>oda application/oda<br/>oom application/x-AtlasMate-Plugin<br/>pac audio/x-pac<br/>pae audio/x-epac<br/>pan application/x-pan<br/>pbm image/x-portable-bitmap<br/>pcx image/x-pcx<br/>pda image/x-pda<br/>pdb chemical/x-pdb<br/>pdf application/pdf<br/>pfr application/font-tdpfr<br/>pgm image/x-portable-graymap<br/>pict image/x-pict<br/>pm application/x-perl<br/>pmd application/x-pmd<br/>png image/png<br/>pnm image/x-portable-anymap<br/>pnz image/png<br/>pot application/vnd.ms-powerpoint<br/>ppm image/x-portable-pixmap<br/>pps application/vnd.ms-powerpoint<br/>ppt application/vnd.ms-powerpoint<br/>pqf application/x-cprplayer<br/>pqi application/cprplayer<br/>prc application/x-prc<br/>proxy application/x-ns-proxy-autoconfig<br/>ps application/postscript<br/>ptlk application/listenup<br/>pub application/x-mspublisher<br/>pvx video/x-pv-pvx<br/>qcp audio/vnd.qcelp<br/>qt video/quicktime<br/>qti image/x-quicktime<br/>qtif image/x-quicktime<br/>r3t text/vnd.rn-realtext3d<br/>ra audio/x-pn-realaudio<br/>ram audio/x-pn-realaudio<br/>rar application/x-rar-compressed<br/>ras image/x-cmu-raster<br/>rdf application/rdf+xml<br/>rf image/vnd.rn-realflash<br/>rgb image/x-rgb<br/>rlf application/x-richlink<br/>rm audio/x-pn-realaudio<br/>rmf audio/x-rmf<br/>rmm audio/x-pn-realaudio<br/>rmvb audio/x-pn-realaudio<br/>rnx application/vnd.rn-realplayer<br/>roff application/x-troff<br/>rp image/vnd.rn-realpix<br/>rpm audio/x-pn-realaudio-plugin<br/>rt text/vnd.rn-realtext<br/>rte x-lml/x-gps<br/>rtf application/rtf<br/>rtg application/metastream<br/>rtx text/richtext<br/>rv video/vnd.rn-realvideo<br/>rwc application/x-rogerwilco<br/>s3m audio/x-mod<br/>s3z audio/x-mod<br/>sca application/x-supercard<br/>scd application/x-msschedule<br/>sdf application/e-score<br/>sea application/x-stuffit<br/>sgm text/x-sgml<br/>sgml text/x-sgml<br/>sh application/x-sh<br/>shar application/x-shar<br/>shtml magnus-internal/parsed-html<br/>shw application/presentations<br/>si6 image/si6<br/>si7 image/vnd.stiwap.sis<br/>si9 image/vnd.lgtwap.sis<br/>sis application/vnd.symbian.install<br/>sit application/x-stuffit<br/>skd application/x-Koan<br/>skm application/x-Koan<br/>skp application/x-Koan<br/>skt application/x-Koan<br/>slc application/x-salsa<br/>smd audio/x-smd<br/>smi application/smil<br/>smil application/smil<br/>smp application/studiom<br/>smz audio/x-smd<br/>snd audio/basic<br/>spc text/x-speech<br/>spl application/futuresplash<br/>spr application/x-sprite<br/>sprite application/x-sprite<br/>spt application/x-spt<br/>src application/x-wais-source<br/>stk application/hyperstudio<br/>stm audio/x-mod<br/>sv4cpio application/x-sv4cpio<br/>sv4crc application/x-sv4crc<br/>svf image/vnd<br/>svg image/svg-xml<br/>svh image/svh<br/>svr x-world/x-svr<br/>swf application/x-shockwave-flash<br/>swfl application/x-shockwave-flash<br/>t application/x-troff<br/>tad application/octet-stream<br/>talk text/x-speech<br/>tar application/x-tar<br/>taz application/x-tar<br/>tbp application/x-timbuktu<br/>tbt application/x-timbuktu<br/>tcl application/x-tcl<br/>tex application/x-tex<br/>texi application/x-texinfo<br/>texinfo application/x-texinfo<br/>tgz application/x-tar<br/>thm application/vnd.eri.thm<br/>tif image/tiff<br/>tiff image/tiff<br/>tki application/x-tkined<br/>tkined application/x-tkined<br/>toc application/toc<br/>toy image/toy<br/>tr application/x-troff<br/>trk x-lml/x-gps<br/>trm application/x-msterminal<br/>tsi audio/tsplayer<br/>tsp application/dsptype<br/>tsv text/tab-separated-values<br/>tsv text/tab-separated-values<br/>ttf application/octet-stream<br/>ttz application/t-time<br/>txt text/plain<br/>ult audio/x-mod<br/>ustar application/x-ustar<br/>uu application/x-uuencode<br/>uue application/x-uuencode<br/>vcd application/x-cdlink<br/>vcf text/x-vcard<br/>vdo video/vdo<br/>vib audio/vib<br/>viv video/vivo<br/>vivo video/vivo<br/>vmd application/vocaltec-media-desc<br/>vmf application/vocaltec-media-file<br/>vmi application/x-dreamcast-vms-info<br/>vms application/x-dreamcast-vms<br/>vox audio/voxware<br/>vqe audio/x-twinvq-plugin<br/>vqf audio/x-twinvq<br/>vql audio/x-twinvq<br/>vre x-world/x-vream<br/>vrml x-world/x-vrml<br/>vrt x-world/x-vrt<br/>vrw x-world/x-vream<br/>vts workbook/formulaone<br/>wav audio/x-wav<br/>wax audio/x-ms-wax<br/>wbmp image/vnd.wap.wbmp<br/>web application/vnd.xara<br/>wi image/wavelet<br/>wis application/x-InstallShield<br/>wm video/x-ms-wm<br/>wma audio/x-ms-wma<br/>wmd application/x-ms-wmd<br/>wmf application/x-msmetafile<br/>wml text/vnd.wap.wml<br/>wmlc application/vnd.wap.wmlc<br/>wmls text/vnd.wap.wmlscript<br/>wmlsc application/vnd.wap.wmlscriptc<br/>wmlscript text/vnd.wap.wmlscript<br/>wmv audio/x-ms-wmv<br/>wmx video/x-ms-wmx<br/>wmz application/x-ms-wmz<br/>wpng image/x-up-wpng<br/>wpt x-lml/x-gps<br/>wri application/x-mswrite<br/>wrl x-world/x-vrml<br/>wrz x-world/x-vrml<br/>ws text/vnd.wap.wmlscript<br/>wsc application/vnd.wap.wmlscriptc<br/>wv video/wavelet<br/>wvx video/x-ms-wvx<br/>wxl application/x-wxl<br/>x-gzip application/x-gzip<br/>xar application/vnd.xara<br/>xbm image/x-xbitmap<br/>xdm application/x-xdma<br/>xdma application/x-xdma<br/>xdw application/vnd.fujixerox.docuworks<br/>xht application/xhtml+xml<br/>xhtm application/xhtml+xml<br/>xhtml application/xhtml+xml<br/>xla application/vnd.ms-excel<br/>xlc application/vnd.ms-excel<br/>xll application/x-excel<br/>xlm application/vnd.ms-excel<br/>xls application/vnd.ms-excel<br/>xlt application/vnd.ms-excel<br/>xlw application/vnd.ms-excel<br/>xm audio/x-mod<br/>xml text/xml<br/>xmz audio/x-mod<br/>xpi application/x-xpinstall<br/>xpm image/x-xpixmap<br/>xsit text/xml<br/>xsl text/xml<br/>xul text/xul<br/>xwd image/x-xwindowdump<br/>xyz chemical/x-pdb<br/>yz1 application/x-yz1<br/>z application/x-compress<br/>zac application/x-zaurus-zac<br/>zip application/zip<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=81</link>
			<title><![CDATA[asp.net压缩文件夹]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Tue,18 May 2010 11:35:32 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=81</guid>
		<description><![CDATA[ <br/>///////////////////////////////////法一：调用winrar<br/><br/>using Microsoft.Win32;<br/>using System.Diagnostics;<br/><br/>protected void Button1_Click(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RAR(@&#34;E:\95413594531\GIS&#34;, &#34;tmptest&#34;, @&#34;E:\95413594531\&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp; /// 压缩文件<br/>&nbsp;&nbsp; /// &lt;/summary&gt;<br/>&nbsp;&nbsp; /// &lt;param name=&#34;DFilePath&#34;&gt;需要压缩的文件夹或者单个文件&lt;/param&gt;<br/>&nbsp;&nbsp; /// &lt;param name=&#34;DRARName&#34;&gt;生成压缩文件的文件名&lt;/param&gt;<br/>&nbsp;&nbsp; /// &lt;param name=&#34;DRARPath&#34;&gt;生成压缩文件保存路径&lt;/param&gt;<br/>&nbsp;&nbsp; /// &lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected bool RAR(string DFilePath, string DRARName,string DRARPath)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String the_rar;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegistryKey the_Reg;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object the_Obj;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String the_Info;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessStartInfo the_StartInfo;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process the_Process;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Reg = Registry.ClassesRoot.OpenSubKey(@&#34;Applications\WinRAR.exe\Shell\Open\Command&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Obj = the_Reg.GetValue(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_rar = the_Obj.ToString();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Reg.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_rar = the_rar.Substring(1, the_rar.Length - 7);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Info = &#34; a&nbsp;&nbsp;&nbsp;&nbsp;&#34; + &#34; &#34; + DRARName + &#34;&nbsp;&nbsp;&#34; + DFilePath +&#34; -ep1&#34;; //命令 + 压缩后文件名 + 被压缩的文件或者路径<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo = new ProcessStartInfo();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.FileName = the_rar;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.Arguments = the_Info;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.WorkingDirectory = DRARPath ; //RaR文件的存放目录。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process = new Process();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process.StartInfo = the_StartInfo;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process.Start();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process.WaitForExit();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception ex)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/> <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 解压缩到指定文件夹 <br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;RARFilePath&#34;&gt;压缩文件存在的目录 &lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;RARFileName&#34;&gt;压缩文件名称 &lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;UnRARFilePath&#34;&gt;解压到文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;protected bool UnRAR(string RARFilePath,string RARFileName,string UnRARFilePath)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//解压缩<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String the_rar;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegistryKey the_Reg;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object the_Obj;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String the_Info;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessStartInfo the_StartInfo;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process the_Process;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Reg = Registry.ClassesRoot.OpenSubKey(@&#34;Applications\WinRar.exe\Shell\Open\Command&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Obj = the_Reg.GetValue(&#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_rar = the_Obj.ToString();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Reg.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_rar = the_rar.Substring(1, the_rar.Length - 7);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Info = @&#34; X &#34; + &#34; &#34; + RARFilePath + RARFileName + &#34; &#34; + UnRARFilePath;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo = new ProcessStartInfo();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.FileName = the_rar;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.Arguments = the_Info;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process = new Process();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process.StartInfo = the_StartInfo;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the_Process.Start();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch (Exception ex)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/><br/><br/><br/><br/><br/><br/>//////////////////////////////法二：调用类库ICSharpCode.SharpZipLib.dll<br/><br/>using System.IO;<br/>using ICSharpCode.SharpZipLib;<br/>using ICSharpCode.SharpZipLib.Checksums;<br/>using ICSharpCode.SharpZipLib.Zip;<br/>using ICSharpCode.SharpZipLib.GZip;<br/>using ICSharpCode.SharpZipLib.BZip2;<br/><br/>using ICSharpCode.SharpZipLib.Zip.Compression;<br/>using ICSharpCode.SharpZipLib.Zip.Compression.Streams;<br/><br/>protected void Button1_Click(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[] str = new string[1];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str[0] = @&#34;E:\9541241560\地学院\&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zip(str);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;#region 压缩<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 压缩文件,默认目录为当前目录，文件名为当前目录名，压缩级别为6<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;fileOrDirectory&#34;&gt;要压缩的文件或文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public void Zip(params string[] fileOrDirectory)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zip(6, fileOrDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 压缩文件,默认目录为当前目录，文件名为当前目录名<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;zipLevel&#34;&gt;压缩的级别&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;fileOrDirectory&#34;&gt;要压缩的文件或文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public void Zip(int zipLevel, params string[] fileOrDirectory)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fileOrDirectory == null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (fileOrDirectory.Length &lt; 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string str = fileOrDirectory[0];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (str.EndsWith(&#34;\\&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = str.Substring(0, str.Length - 1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str += &#34;.zip&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zip(str, zipLevel, fileOrDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 压缩文件,默认目录为当前目录<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;zipedFileName&#34;&gt;压缩后的文件&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;zipLevel&#34;&gt;压缩的级别&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;fileOrDirectory&#34;&gt;要压缩的文件或文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public void Zip(string zipedFileName, int zipLevel, params string[] fileOrDirectory)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fileOrDirectory == null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (fileOrDirectory.Length &lt; 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string str = fileOrDirectory[0];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (str.EndsWith(&#34;\\&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = str.Substring(0, str.Length - 1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str = str.Substring(0, str.LastIndexOf(&#34;\\&#34;));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zip(zipedFileName, str, zipLevel, fileOrDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 压缩文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;zipedFileName&#34;&gt;压缩后的文件&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;zipLevel&#34;&gt;压缩的级别&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;currentDirectory&#34;&gt;当前所处目录&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;fileOrDirectory&#34;&gt;要压缩的文件或文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public void Zip(string zipedFileName, string currentDirectory, int zipLevel, params string[] fileOrDirectory)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList AllFiles = new ArrayList();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//获取所有文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fileOrDirectory != null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; fileOrDirectory.Length; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (File.Exists(fileOrDirectory[i]))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AllFiles.Add(fileOrDirectory[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (Directory.Exists(fileOrDirectory[i]))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetDirectoryFile(fileOrDirectory[i], AllFiles);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (AllFiles.Count &lt; 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZipOutputStream zipedStream = new ZipOutputStream(File.Cr&#101;ate(zipedFileName));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zipedStream.SetLevel(zipLevel);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; AllFiles.Count; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string file = AllFiles[i].ToString();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStream fs;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//打开要压缩的文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs = File.OpenRead(file);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[] buffer = new byte[fs.Length];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs.Read(buffer, 0, buffer.Length);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//新建一个entry<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string fileName = file.Replace(currentDirectory, &#34;&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fileName.StartsWith(&#34;\\&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileName = fileName.Substring(1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZipEntry entry = new ZipEntry(fileName);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry.DateTime = DateTime.Now;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//保存到zip流<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zipedStream.PutNextEntry(entry);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zipedStream.Write(buffer, 0, buffer.Length);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finally<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs.Dispose();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zipedStream.Finish();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zipedStream.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 压缩文件夹<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;curretnDirectory&#34;&gt;当前所在的文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public void ZipDirectory(string curretnDirectory)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (curretnDirectory == null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string dir = curretnDirectory;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dir.EndsWith(&#34;\\&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir = dir.Substring(0, dir.Length - 1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string file = dir.Substring(dir.LastIndexOf(&#34;\\&#34;) + 1) + &#34;.zip&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir += &#34;\\&#34; + file;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zip(dir, 6, curretnDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// 压缩文件夹<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&#34;curretnDirectory&#34;&gt;当前所在的文件夹&lt;/param&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;public void ZipDirectory(string curretnDirectory, int zipLevel)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (curretnDirectory == null)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string dir = curretnDirectory;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dir.EndsWith(&#34;\\&#34;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir = dir.Substring(0, dir.Length - 1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir += &#34;.zip&#34;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zip(dir, zipLevel, curretnDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//递归获取一个目录下的所有文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;private void GetDirectoryFile(string parentDirectory, ArrayList toStore)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[] files = Directory.GetFiles(parentDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; files.Length; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toStore.Add(files[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[] directorys = Directory.GetDirectories(parentDirectory);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; directorys.Length; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetDirectoryFile(directorys[i], toStore);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br/><br/> ]]></description>
		</item>
		
			<item>
			<link>http://www.luckli.cn/article.asp?id=80</link>
			<title><![CDATA[asp.net 导出数据为Excel]]></title>
			<author>linli7000@qq.com(admin)</author>
			<category><![CDATA[学习园地]]></category>
			<pubDate>Tue,18 May 2010 11:34:47 +0800</pubDate>
			<guid>http://www.luckli.cn/default.asp?id=80</guid>
		<description><![CDATA[protected void Button1_Click(object sender, EventArgs e)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string strsql = &#34;sel&#101;ct * from TreeViewTemp wh&#101;re parentID=0&#34;;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable dt = db.GetDataTable(strsql);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter sw = new StringWriter();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//StreamWriter sw = new StreamWriter(&#34;d:\\test.xls&#34;,false,System.Text.Encoding.Default); 本地保存&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExportExcel(dt, sw);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.AddHeader(&#34;Content-Disposition&#34;, &#34;attachment; filename=PDSDATA.xls&#34;);//遠程下載&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.ContentType = &#34;application/ms-excel&#34;;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.ContentEncoding = System.Text.Encoding.GetEncoding(&#34;GB2312&#34;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(sw);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.End();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void ExportExcel(DataTable dt, StringWriter w)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; dt.Columns.Count; i++)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(dt.Columns[i]);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#39;\t&#39;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#34;\r\n&#34;);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object[] values = new object[dt.Columns.Count];&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (DataRow dr in dt.Rows)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values = dr.ItemArray;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; dt.Columns.Count; i++)&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(values[i]);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#39;\t&#39;); //修改语句&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#34;\r\n&#34;); //修改语句&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Flush();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Close();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Close();&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/>protected void Button1_Click(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string strsql = &#34;sel&#101;ct * from TreeViewTemp wh&#101;re parentID=0&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable dt = db.GetDataTable(strsql);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter sw = new StringWriter();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//StreamWriter sw = new StreamWriter(&#34;d:\\test.xls&#34;,false,System.Text.Encoding.Default); 本地保存<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExportExcel(dt, sw);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.AddHeader(&#34;Content-Disposition&#34;, &#34;attachment; filename=PDSDATA.xls&#34;);//遠程下載<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.ContentType = &#34;application/ms-excel&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.ContentEncoding = System.Text.Encoding.GetEncoding(&#34;GB2312&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(sw);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.End();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void ExportExcel(DataTable dt, StringWriter w)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; dt.Columns.Count; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(dt.Columns[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#39;\t&#39;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#34;\r\n&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object[] values = new object[dt.Columns.Count];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (DataRow dr in dt.Rows)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values = dr.ItemArray;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; dt.Columns.Count; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(values[i]);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#39;\t&#39;); //修改语句<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Write(&#34;\r\n&#34;); //修改语句<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Flush();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w.Close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>引用空间为<br/><br/>using System.IO;<br/> ]]></description>
		</item>
		
</channel>
</rss>
