<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_MicroCoder</title><subtitle type="text">{编程之美}</subtitle><id>http://feed.cnblogs.com/blog/u/34863/rss</id><updated>2012-02-15T15:41:05Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/34863/rss"/><entry><id>http://www.cnblogs.com/dushouke/archive/2011/09/03/2165340.html</id><title type="text">一个简单的ASP.NET WebForm &amp;quot;Model Binder&amp;quot;</title><summary type="text">ASP.NET MVC 中有一个神器Model Binder，给开发带来很多便利，如果使用WebForm 开发的话，只能望洋兴叹了，不过人类是无法阻止程序猿解决问题的决心的。 废话不多说了，直接看看这个山寨版的 &amp;quot;Model Binder&amp;quot; 复杂类型使用示例 先定义几个简单的实体： public class User { public int SysNo { g...</summary><published>2011-09-03T04:36:00Z</published><updated>2011-09-03T04:36:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2011/09/03/2165340.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2011/09/03/2165340.html"/><content type="html">&lt;p&gt;ASP.NET MVC 中有一个神器Model Binder，给开发带来很多便利，如果使用WebForm 开发的话，只能望洋兴叹了，不过人类是无法阻止程序猿解决问题的决心的。&lt;/p&gt;  &lt;p&gt;废话不多说了，直接看看这个山寨版的 &amp;quot;Model Binder&amp;quot; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;b&gt;复杂类型使用示例&lt;/b&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;先定义几个简单的实体：&lt;/p&gt;  &lt;pre &gt;public class User&#xD;
    {&#xD;
        public int SysNo { get; set; }&#xD;
        public string Name { get; set; }&#xD;
        public bool Good { get; set; }&#xD;
        public DateTime Birthday { get; set; }&#xD;
        public Address Address { get; set; }&#xD;
        public int[] Test { get; set; }&#xD;
        public List&amp;lt;Order&amp;gt; Orders { get; set; }//不支持复杂列表类型的转换&#xD;
    }&#xD;
    public class Order&#xD;
    {&#xD;
        public string OrderID { get; set; }&#xD;
&#xD;
    }&#xD;
    public class Address&#xD;
    {&#xD;
        public User User { get; set; }&#xD;
        public int SysNo { get; set; }&#xD;
        public string Name { get; set; }&#xD;
    }&lt;/pre&gt;&#xD;
&#xD;
&lt;p&gt;&amp;#160;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;然后看看界面上表单的样子&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/201109/20110903123607363.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/201109/201109031236079000.png" width="1197" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;#160;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;看看效果&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/201109/201109031236079033.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/201109/201109031236085163.png" width="388" height="231" /&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/201109/201109031236082164.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/201109/201109031236094705.png" width="580" height="279" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;#160;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;转换成功！！&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&amp;#160;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;b&gt;如何判断用户没有输入或者转换失败呢？&lt;/b&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;很简单在Global中注册默认值&lt;/p&gt;&#xD;
&#xD;
&lt;pre &gt;protected void Application_Start(object sender, EventArgs e)&#xD;
        {&#xD;
            RequestBinder.RegistDefaultValue&amp;lt;int&amp;gt;(-999999);&#xD;
            RequestBinder.RegistDefaultValue&amp;lt;DateTime&amp;gt;(DateTime.Parse(&amp;quot;1900/01/01&amp;quot;));&#xD;
        }&lt;/pre&gt;&#xD;
&#xD;
&lt;p&gt;&amp;#160;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;b&gt;上面是复杂类型，对于简单的更不在话下了，只要指定表单的Name就可以了&lt;/b&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;pre &gt;int sysno = RequestBinder.UpdateModel&amp;lt;int&amp;gt;(&amp;quot;SysNO&amp;quot;);&lt;/pre&gt;&#xD;
&#xD;
&lt;p&gt;&lt;strong&gt;&lt;font style="font-weight: bold"&gt;源码下载：&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;a href="http://files.cnblogs.com/dushouke/RequestBinder.rar"&gt;http://files.cnblogs.com/dushouke/RequestBinder.rar&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/2165340.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2011/09/03/2165340.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2011/09/03/2164616.html</id><title type="text">stackoverflow favorites</title><summary type="text"/><published>2011-09-03T02:10:00Z</published><updated>2011-09-03T02:10:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2011/09/03/2164616.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2011/09/03/2164616.html"/><content type="html">&lt;br /&gt;&#xD;
&lt;style type="text/css"&gt;&#xD;
.w-670{ width:670px;}&#xD;
.subtabs { float: right; font-weight: bold; width: 100%; }&#xD;
.subtabs a { border: 1px solid #CCCCCC; color: #808185; display: block; float: right; font-family: Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif; font-size: 120%; margin-right: 3px; padding: 2px 4px 4px; text-decoration: none; }&#xD;
.subtabs a.youarehere { background-color: #808185; border: 1px solid #808185; color: #FFFFFF; font-weight: bold; }&#xD;
.question-summary { border-bottom: 1px dotted #999999; float: left; overflow: hidden; padding: 11px 0; width: 670px; }&#xD;
.cp { cursor: pointer; }&#xD;
.narrow .votes { background: none repeat scroll 0 0 transparent; float: left; height: 38px; margin: 0 3px 0 0; padding: 5px; width: 38px; }&#xD;
.votes { color: #555555; padding: 0 0 7px; text-align: center; }&#xD;
.mini-counts { font-size: 190%; font-weight: bold; height: 25px; }&#xD;
.narrow .status { float: left; height: 38px; margin: 0 3px 0 0; padding: 5px; width: 48px; }&#xD;
.answered { background: none repeat scroll 0 0 #75845C; color: #FFFFFF; }&#xD;
.status { margin-top: -3px; padding: 4px 0; text-align: center; }&#xD;
.narrow .views { float: left; height: 38px; margin: 0 7px 0 0; padding: 5px 0 5px 4px; width: 40px; }&#xD;
.views { color: #999999; padding-top: 4px; text-align: center; }&#xD;
.narrow .summary { width: 700px; }&#xD;
.summary h3 { font-family: Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif; font-size: 150%; font-weight: bold; margin-bottom: 5px; }&#xD;
.question-hyperlink { font-weight: bold; }&#xD;
.tags { float: left; line-height: 18px; }&#xD;
.post-tag { background-color: #E0EAF1; border-bottom: 1px solid #3E6D8E; border-right: 1px solid #7F9FB6; color: #3E6D8E;; line-height: 2.4; margin: 2px 2px 2px 0; padding: 3px 4px; text-decoration: none; white-space: nowrap; }&#xD;
a.post-tag:hover { background-color: #3E6D8E; border-bottom: 1px solid #37607D; border-right: 1px solid #37607D; color: #E0EAF1; text-decoration: none; }&#xD;
.pagination-more{ border-color: #DDDDDD #AAAAAA #AAAAAA #DDDDDD;&#xD;
border-radius: 5px 5px 5px 5px;&#xD;
border-style: solid;&#xD;
border-width: 1px;&#xD;
display: block;&#xD;
float: left;&#xD;
font-size: 14px;&#xD;
height: 22px;&#xD;
line-height: 1.5em;&#xD;
margin-bottom: 6px;&#xD;
outline: medium none;&#xD;
padding: 6px 0;&#xD;
text-align: center;&#xD;
text-decoration: none;}&#xD;
&lt;/style&gt;&#xD;
&#xD;
 &lt;div id="f-list" &gt;&#xD;
        &lt;/div&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/2164616.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2011/09/03/2164616.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2011/06/04/use-aspx-outputcache-in-ashx.html</id><title type="text">在ashx中使用aspx的OutputCached</title><summary type="text">publicclassCacheHandler:IHttpHandler{publicvoidProcessRequest(HttpContextcontext){OutputCachedPagepage=newOutputCachedPage(newOutputCacheParameters{Duration=60,Location=OutputCacheLocation.Server,VaryByParam=&amp;quot;v&amp;quot;});page.ProcessRequest(HttpContext.Current);context.Response.Write(DateTime.Now</summary><published>2011-06-04T04:45:00Z</published><updated>2011-06-04T04:45:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2011/06/04/use-aspx-outputcache-in-ashx.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2011/06/04/use-aspx-outputcache-in-ashx.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CacheHandler&amp;nbsp;:&amp;nbsp;IHttpHandler&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;ProcessRequest(HttpContext&amp;nbsp;context)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OutputCachedPage&amp;nbsp;page&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OutputCachedPage(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OutputCacheParameters&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Duration&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;60&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OutputCacheLocation.Server,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VaryByParam&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;v&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;page.ProcessRequest(HttpContext.Current);&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context.Response.Write(DateTime.Now);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IsReusable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;sealed&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OutputCachedPage&amp;nbsp;:&amp;nbsp;Page&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OutputCacheParameters&amp;nbsp;_cacheSettings;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;OutputCachedPage(OutputCacheParameters&amp;nbsp;cacheSettings)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;Tracing&amp;nbsp;requires&amp;nbsp;Page&amp;nbsp;IDs&amp;nbsp;to&amp;nbsp;be&amp;nbsp;unique.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Guid.NewGuid().ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_cacheSettings&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;cacheSettings;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FrameworkInitialize()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;when&amp;nbsp;you&amp;nbsp;put&amp;nbsp;the&amp;nbsp;&amp;lt;%@&amp;nbsp;OutputCache&amp;nbsp;%&amp;gt;&amp;nbsp;directive&amp;nbsp;on&amp;nbsp;a&amp;nbsp;page,&amp;nbsp;the&amp;nbsp;generated&amp;nbsp;code&amp;nbsp;calls&amp;nbsp;InitOutputCache()&amp;nbsp;from&amp;nbsp;here&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;&lt;span style="color: #000000;"&gt;.FrameworkInitialize();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitOutputCache(_cacheSettings);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/2072565.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2011/06/04/use-aspx-outputcache-in-ashx.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2011/01/26/UNIX-Timestamp-DateTime.html</id><title type="text">Unix时间戳与C# DateTime时间类型互换</title><summary type="text">/// &amp;lt;summary&amp;gt;/// method for converting a UNIX timestamp to a regular/// System.DateTime value (and also to the current local time)/// &amp;lt;/summary&amp;gt;/// &amp;lt;param name="timestamp"&amp;gt;value to b...</summary><published>2011-01-26T14:20:00Z</published><updated>2011-01-26T14:20:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2011/01/26/UNIX-Timestamp-DateTime.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2011/01/26/UNIX-Timestamp-DateTime.html"/><content type="html">&lt;p&gt;&lt;div &gt;&#xD;
&lt;pre &gt;/// &amp;lt;summary&amp;gt;&#xD;
/// method for converting a UNIX timestamp to a regular&#xD;
/// System.DateTime value (and also to the current local time)&#xD;
/// &amp;lt;/summary&amp;gt;&#xD;
/// &amp;lt;param name="timestamp"&amp;gt;value to be converted&amp;lt;/param&amp;gt;&#xD;
/// &amp;lt;returns&amp;gt;converted DateTime in string format&amp;lt;/returns&amp;gt;&#xD;
private static DateTime ConvertTimestamp(double timestamp)&#xD;
{&#xD;
    //create a new DateTime value based on the Unix Epoch&#xD;
    DateTime converted = new DateTime(1970, 1, 1, 0, 0, 0, 0);&#xD;
&#xD;
    //add the timestamp to the value&#xD;
    DateTime newDateTime = converted.AddSeconds(timestamp);&#xD;
&#xD;
    //return the value in string format&#xD;
    return newDateTime.ToLocalTime();&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;div &gt;&#xD;
&lt;pre &gt;/// &amp;lt;summary&amp;gt;&#xD;
/// method for converting a System.DateTime value to a UNIX Timestamp&#xD;
/// &amp;lt;/summary&amp;gt;&#xD;
/// &amp;lt;param name="value"&amp;gt;date to convert&amp;lt;/param&amp;gt;&#xD;
/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&#xD;
private double ConvertToTimestamp(DateTime value)&#xD;
{&#xD;
    //create Timespan by subtracting the value provided from&#xD;
    //the Unix Epoch&#xD;
    TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime());&#xD;
&#xD;
    //return the total seconds (which is a UNIX timestamp)&#xD;
    return (double)span.TotalSeconds;&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1945812.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2011/01/26/UNIX-Timestamp-DateTime.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2010/11/07/1871015.html</id><title type="text">[转]SQL Server 事务处理 回滚事务</title><summary type="text">SET&amp;#160;ANSI_NULLS&amp;#160;ON GO SET&amp;#160;QUOTED_IDENTIFIER&amp;#160;ON GO CREATE&amp;#160;TABLE&amp;#160;[dbo].[t1] &amp;#160; ( &amp;#160;&amp;#160;&amp;#160;&amp;#160; [Id]&amp;#160;[INT]&amp;#160;NOT&amp;#160;NULL, &amp;#160;&amp;#160;&amp;#160;&amp;#160; [c...</summary><published>2010-11-07T04:12:00Z</published><updated>2010-11-07T04:12:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2010/11/07/1871015.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2010/11/07/1871015.html"/><content type="html">&lt;font size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;ANSI_NULLS&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;ON&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;QUOTED_IDENTIFIER&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;ON&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;CREATE&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TABLE&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;[dbo]&lt;/font&gt;&lt;font color="#c0c0c0"&gt;.&lt;/font&gt;&lt;font color="#800000"&gt;[t1]&lt;/font&gt;     &lt;br /&gt;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;[Id]&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;&lt;i&gt;[INT]&lt;/i&gt;&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;NOT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;NULL&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;[c1]&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;&lt;i&gt;[NVARCHAR]&lt;/i&gt;&lt;/font&gt;&lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;50&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;NULL&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;[c2]&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;&lt;i&gt;[DATETIME]&lt;/i&gt;&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;NULL&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;CONSTRAINT&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;[PK_Table1]&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;PRIMARY&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;KEY&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;CLUSTERED&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;(&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;[Id]&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;ASC&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;WITH&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;PAD_INDEX&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;OFF&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;STATISTICS_NORECOMPUTE&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;OFF&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;IGNORE_DUP_KEY&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;OFF&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;ALLOW_ROW_LOCKS&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;ON&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;ALLOW_PAGE_LOCKS&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;ON&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;ON&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;[PRIMARY]&lt;/font&gt;     &lt;br /&gt;&amp;#160; &lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;ON&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;[PRIMARY]&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#008000"&gt;&lt;i&gt;--解决方案一&lt;/i&gt;&lt;/font&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;&lt;i&gt;INT&lt;/i&gt;&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;0&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRAN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;Tran_2008_10_07&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'1'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;+&lt;/font&gt;&amp;#160;&lt;font color="#ff00ff"&gt;&lt;i&gt;@@ERROR&lt;/i&gt;&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'2'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;+&lt;/font&gt;&amp;#160;&lt;font color="#ff00ff"&gt;&lt;i&gt;@@ERROR&lt;/i&gt;&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#ff0000"&gt;'xxxx3'&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'3'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;+&lt;/font&gt;&amp;#160;&lt;font color="#ff00ff"&gt;&lt;i&gt;@@ERROR&lt;/i&gt;&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;4&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'4'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;+&lt;/font&gt;&amp;#160;&lt;font color="#ff00ff"&gt;&lt;i&gt;@@ERROR&lt;/i&gt;&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;5&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'5'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;+&lt;/font&gt;&amp;#160;&lt;font color="#ff00ff"&gt;&lt;i&gt;@@ERROR&lt;/i&gt;&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;IF&lt;/font&gt;&amp;#160;&lt;font color="#8000ff"&gt;@iErrorCount&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;0&lt;/font&gt;     &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;COMMIT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRAN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;Tran_2008_10_07&lt;/font&gt;     &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;ELSE&lt;/font&gt;     &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ROLLBACK&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRAN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;Tran_2008_10_07&lt;/font&gt;     &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#008000"&gt;&lt;i&gt;--解决方案二&lt;/i&gt;&lt;/font&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRY&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRAN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;Tran_2008_10_07&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'1'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'2'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#ff0000"&gt;'xxxx3'&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'3'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;4&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'4'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;INSERT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;INTO&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;t1&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#800000"&gt;Id&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;c1&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;5&lt;/font&gt;&lt;font color="#c0c0c0"&gt;,&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'5'&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;COMMIT&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRAN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;Tran_2008_10_07&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;END&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRY&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;CATCH&lt;/font&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;RAISERROR&lt;/font&gt;&amp;#160;&lt;font color="#000000"&gt;50005&lt;/font&gt;&lt;font color="#ff0000"&gt;N'错误了'&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ROLLBACK&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;TRAN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;Tran_2008_10_07&lt;/font&gt;     &lt;br /&gt;&lt;font color="#0000ff"&gt;END&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;CATCH&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1871015.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2010/11/07/1871015.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2010/10/19/1855735.html</id><title type="text">代码片段——泛型类型转换</title><summary type="text">public static class TConverter{ public static T ChangeType&amp;lt;T&amp;gt;(object value) { return (T)ChangeType(typeof(T), value); } public static object ChangeType(Type t, object value) { TypeConverter tc =...</summary><published>2010-10-19T10:05:00Z</published><updated>2010-10-19T10:05:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2010/10/19/1855735.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2010/10/19/1855735.html"/><content type="html">&lt;p&gt;&lt;div &gt;&#xD;
&lt;pre &gt;public static class TConverter&#xD;
{&#xD;
    public static T ChangeType&amp;lt;T&amp;gt;(object value)&#xD;
    {&#xD;
        return (T)ChangeType(typeof(T), value);&#xD;
    }&#xD;
    public static object ChangeType(Type t, object value)&#xD;
    {&#xD;
        TypeConverter tc = TypeDescriptor.GetConverter(t);&#xD;
        return tc.ConvertFrom(value);&#xD;
    }&#xD;
    public static void RegisterTypeConverter&amp;lt;T, TC&amp;gt;() where TC : TypeConverter&#xD;
    {&#xD;
        TypeDescriptor.AddAttributes(typeof(T), new TypeConverterAttribute(typeof(TC)));&#xD;
    }&#xD;
}&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1855735.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2010/10/19/1855735.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2010/10/19/1855587.html</id><title type="text">代码存档</title><summary type="text">public static bool IsCached(HttpContext context, TimeSpan cacheDuration) { var modifiedSince = context.Request.Headers["If-Modified-Since"]; if (!string.IsNullOrEmpty(modifiedSince)) { modifiedSince =...</summary><published>2010-10-19T07:49:00Z</published><updated>2010-10-19T07:49:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2010/10/19/1855587.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2010/10/19/1855587.html"/><content type="html">&lt;p&gt;&lt;div &gt;&#xD;
&lt;pre &gt;public static bool IsCached(HttpContext context, TimeSpan cacheDuration)&#xD;
    {&#xD;
        var modifiedSince = context.Request.Headers["If-Modified-Since"];&#xD;
        if (!string.IsNullOrEmpty(modifiedSince))&#xD;
        {&#xD;
            modifiedSince = Regex.Replace(modifiedSince, @";.*$", "");//ie6&#xD;
        }&#xD;
        DateTime modified;&#xD;
        if (DateTime.TryParse(modifiedSince, out modified) &amp;amp;&amp;amp; modified.Add(cacheDuration) &amp;gt; DateTime.Now)&#xD;
        {&#xD;
            context.Response.StatusCode = 304;&#xD;
            context.Response.Status = "304 Not Modified";&#xD;
            return true;&#xD;
        }&#xD;
        return false;&#xD;
    }&#xD;
    public static void SetCachedHeader(HttpContext context, TimeSpan cacheDuration)&#xD;
    {&#xD;
        FieldInfo maxAge = context.Response.Cache.GetType().GetField("_maxAge",&#xD;
BindingFlags.Instance | BindingFlags.NonPublic);&#xD;
        maxAge.SetValue(context.Response.Cache, cacheDuration);&#xD;
        //context.Response.Cache.SetMaxAge(cacheDuration);&#xD;
        context.Response.Cache.SetETag(string.Empty);&#xD;
        context.Response.Cache.SetCacheability(HttpCacheability.Public);&#xD;
        context.Response.Cache.SetLastModified(DateTime.Now);&#xD;
        context.Response.Cache.SetExpires(DateTime.Now.Add(cacheDuration));&#xD;
        context.Response.Cache.AppendCacheExtension(&#xD;
                "must-revalidate, proxy-revalidate");&#xD;
    }&#xD;
    public static void Cached(HttpContext context)&#xD;
    {&#xD;
        Cached(context, TimeSpan.FromMinutes(10));&#xD;
    }&#xD;
&#xD;
    public static void Cached(HttpContext context, TimeSpan cacheDuration)&#xD;
    {&#xD;
        if (!IsCached(context, cacheDuration))&#xD;
        {&#xD;
            SetCachedHeader(context, cacheDuration);&#xD;
        }&#xD;
        else&#xD;
        {&#xD;
            context.Response.End();&#xD;
        }&#xD;
&#xD;
    }&#xD;
    public static void GZIP(HttpContext context)&#xD;
    {&#xD;
        string acceptEncoding = context.Request.Headers["Accept-Encoding"];&#xD;
&#xD;
        if (!String.IsNullOrEmpty(acceptEncoding))&#xD;
        {&#xD;
            acceptEncoding = acceptEncoding.ToString().ToUpperInvariant();&#xD;
            //如果头部里有包含"GZIP&amp;rdquo;,"DEFLATE",表示你浏览器支持 GZIP,DEFLATE压缩&#xD;
            if (acceptEncoding.Contains("GZIP"))&#xD;
            {&#xD;
                //向输出流头部添加压缩信息&#xD;
                context.Response.AppendHeader("Content-encoding", "gzip");&#xD;
                context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);&#xD;
            }&#xD;
            else if (acceptEncoding.Contains("DEFLATE"))&#xD;
            {&#xD;
                //向输出流头部添加压缩信息&#xD;
                context.Response.AppendHeader("Content-encoding", "deflate");&#xD;
                context.Response.Filter = new DeflateStream(context.Response.Filter, CompressionMode.Compress);&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1855587.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2010/10/19/1855587.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2010/07/24/iis-only-add-expires-headers-to-images.html</id><title type="text">IIS为不同的文件设置不同的过期头</title><summary type="text">为静态文件（js，css，image）设置客户端缓存是前端优化的重要法则之一，通过IIS为静态文件设置过期头（Expires headers）很方便，1.打开IIS管理器；2.点击要设置的站点，在功能视图中双击HTTP响应标头，3.然后点击，打开对话框但是这样操作，web的整个站的所有的静态文件的缓存时间都一样，如果我们希望为不同的静态文件添加不同的缓存时间，比如有些文件很久不改变希望缓存时间长些...</summary><published>2010-07-24T04:52:00Z</published><updated>2010-07-24T04:52:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2010/07/24/iis-only-add-expires-headers-to-images.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2010/07/24/iis-only-add-expires-headers-to-images.html"/><content type="html">&lt;p&gt;为静态文件（js，css，image）设置客户端缓存是前端优化的重要法则之一，通过IIS为静态文件设置过期头（Expires headers）很方便，&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt;打开IIS管理器；&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt;点击要设置的站点，在功能视图中双击HTTP响应标头&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_2.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb.png" border="0" height="83" width="80" /&gt;&lt;/a&gt;，&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt;然后点击&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_6.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb_2.png" border="0" height="107" width="184" /&gt;&lt;/a&gt;，打开对话框&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_8.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb_3.png" border="0" height="321" width="469" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;但是这样操作，web的整个站的所有的静态文件的缓存时间都一样，如果我们希望为不同的静态文件添加不同的缓存时间，比如有些文件很久不改变希望缓存时间长些，有些希望缓存时间短些。一直我以为IIS不可以做到，需要编程的方式管理，在google上搜索也无果，最后在&lt;a title="http://stackoverflow.com/" href="http://stackoverflow.com/" target="_blank"&gt;stackoverflow&lt;/a&gt;提问（&lt;a title="http://stackoverflow.com/questions/2069341/iis-only-add-expires-headers-to-images" href="http://stackoverflow.com/questions/2069341/iis-only-add-expires-headers-to-images" target="_blank"&gt;iis only Add Expires headers to images&lt;/a&gt;），很长时间没人回答（&lt;img style="border-style: none;"  alt="悲伤" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/wlEmoticon-sadsmile_2.png" /&gt;），不过最终还是有人解答了。&lt;/p&gt;&#xD;
&lt;p&gt;操作起来还是很简单，下面以添加&lt;strong&gt;某一个JS文件&lt;/strong&gt;的缓存时间为例：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; 在IIS管理器下点击该文件的文件夹并切换到内容视图&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_10.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb_4.png" border="0" height="236" width="336" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_12.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb_5.png" border="0" height="236" width="468" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; 选中要设置的js文件，如上图的jquery-1.3.2.js，&lt;strong&gt;右键切换到功能视图，&lt;/strong&gt;这时看到的IIS管理台内容是&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_16.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb_7.png" border="0" height="425" width="472" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;双击上图的HTTP响应标头就可以像为整个站点设置过期时间一样的操作。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上面的操作最终还是生成web.config的配置，经过上面的设置你会发现在Script文件夹下生成了一个web.config配置文件，打开发现内容如下&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_18.png"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/IIS_AD34/image_thumb_8.png" border="0" height="216" width="645" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这样就明白了通过上面在IIS管理器的&amp;ldquo;繁琐&amp;rdquo;的界面操作可以通过简单的web.config中配置即可，&lt;/p&gt;&#xD;
&lt;p&gt;比如我要我整个Script文件夹设置统一的过期日期，只用添加一个location节即可&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1784269.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2010/07/24/iis-only-add-expires-headers-to-images.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2010/07/15/1778258.html</id><title type="text">理解SQL Server 用户 'username' 登录失败的错误信息</title><summary type="text">使用sql server身份验证登陆到sql server时，如果遇到错误，将弹出下面的错误信息：但是值得注意的是这个错误信息并没有真实的显示出到底什么原因导致登陆失败，这样做的目的是防止信息泄露给未授权的用户。实际上上图中的状态永远为1，不论是什么错误。为了查看登陆失败的真实原因，只有使用管理员账号登陆到SQL Server并查看日志。例如上图中登陆失败的错误日志：错误信息的状态码能够反映出错误...</summary><published>2010-07-15T09:03:00Z</published><updated>2010-07-15T09:03:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2010/07/15/1778258.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2010/07/15/1778258.html"/><content type="html">&lt;p&gt;使用sql server身份验证登陆到sql server时，如果遇到错误，将弹出下面的错误信息：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/f1f6b1c5001f_E787/image_2.png" rel="WLPP"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/f1f6b1c5001f_E787/image_thumb.png" border="0" height="198" width="462" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;但是值得注意的是这个错误信息并没有真实的显示出到底什么原因导致登陆失败，这样做的目的是防止信息泄露给未授权的用户。&lt;/p&gt;&#xD;
&lt;p&gt;实际上上图中的&lt;b&gt;状态永远为1&lt;/b&gt;，不论是什么错误。&lt;/p&gt;&#xD;
&lt;p&gt;为了查看登陆失败的真实原因，只有使用管理员账号登陆到SQL Server并查看日志。例如上图中登陆失败的错误日志：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/f1f6b1c5001f_E787/image_4.png" rel="WLPP"&gt;&lt;img style="display: inline; border-width: 0px;"  title="image" alt="image" src="http://images.cnblogs.com/cnblogs_com/dushouke/WindowsLiveWriter/f1f6b1c5001f_E787/image_thumb_1.png" border="0" height="55" width="847" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;错误信息的状态码能够反映出错误的真实原因，例如上图中的状态码为8，代表用户密码错误。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1778258.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2010/07/15/1778258.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dushouke/archive/2010/06/23/1763646.html</id><title type="text">kb927917</title><summary type="text">kb927917</summary><published>2010-06-23T07:29:00Z</published><updated>2010-06-23T07:29:00Z</updated><author><name>MicroCoder</name><uri>http://www.cnblogs.com/dushouke/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dushouke/archive/2010/06/23/1763646.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dushouke/archive/2010/06/23/1763646.html"/><content type="html">&lt;p&gt;kb927917&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dushouke/aggbug/1763646.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dushouke/archive/2010/06/23/1763646.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
