﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-寸芒</title><link>http://www.cnblogs.com/cunmang/</link><description>你可以这样理解 impossible（不可能）——I’m possible （我是可能的）</description><language>zh-cn</language><lastBuildDate>Mon, 13 Oct 2008 06:08:33 GMT</lastBuildDate><pubDate>Mon, 13 Oct 2008 06:08:33 GMT</pubDate><ttl>60</ttl><item><title>[原创]作业：家庭消费管理程序，一点代码</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/27/871074.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Mon, 27 Aug 2007 03:47:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/27/871074.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/871074.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/27/871074.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/871074.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/871074.html</trackback:ping><description><![CDATA[<p>最后的图：</p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/04853d8995c5_A547/802702.jpg" atomicselection="true"><img height="248" alt="802702" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/04853d8995c5_A547/802702_thumb.jpg" width="509" border="0"></a> </p> <p>操作数据库的 DBconn.cs:</p> <div class="csharpcode"><pre class="alt"><span class="kwrd">using</span> System;</pre><pre><span class="kwrd">using</span> System.Collections.Generic;</pre><pre class="alt"><span class="kwrd">using</span> System.Text;</pre><pre><span class="kwrd">using</span> System.Data;</pre><pre class="alt"><span class="kwrd">using</span> System.Data.OleDb;</pre><pre>&nbsp;</pre><pre class="alt"><span class="rem">//数据类</span></pre><pre><span class="kwrd">namespace</span> winfamily</pre><pre class="alt">{</pre><pre>    <span class="kwrd">class</span> DBconn</pre><pre class="alt">    {</pre><pre>      <span class="kwrd">private</span> OleDbConnection conn;</pre><pre>        //属性</pre><pre class="alt">        <span class="kwrd">public</span> OleDbConnection Conn</pre><pre>        {</pre><pre class="alt">            get { <span class="kwrd">return</span> conn; }</pre><pre>        }</pre><pre class="alt">        <span class="rem">//连接数据库</span></pre><pre>        <span class="kwrd">public</span>  DBconn(<span class="kwrd">string</span> sql)</pre><pre class="alt">        {</pre><pre>            conn = <span class="kwrd">new</span> OleDbConnection(sql);</pre><pre class="alt">        }</pre><pre>        <span class="rem">//取得数据集</span></pre><pre class="alt">        <span class="kwrd">public</span> DataSet getdb(<span class="kwrd">string</span> str)</pre><pre>        {  </pre><pre class="alt">            Conn.Open();</pre><pre>            OleDbDataAdapter oleda;</pre><pre class="alt">            oleda = <span class="kwrd">new</span> OleDbDataAdapter(str,Conn);</pre><pre>            DataSet ds = <span class="kwrd">new</span> DataSet();</pre><pre class="alt">            oleda.Fill(ds);</pre><pre>            <span class="rem">//关闭</span></pre><pre class="alt">            Conn.Close();</pre><pre>            <span class="kwrd">return</span> ds;</pre><pre class="alt">        }</pre><pre>    }</pre><pre class="alt">}</pre></div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>

<p>------------------------------------------</p>
<p>应用程序的配置文件： App.conifg：</p>
<div class="csharpcode"><pre class="alt">&lt;?xml version=<span class="str">"1.0"</span> encoding=<span class="str">"utf-8"</span> ?&gt;</pre></div>
<div class="csharpcode"><pre>&lt;configuration&gt;</pre></div>
<div class="csharpcode"><pre class="alt">  &lt;appSettings&gt;</pre></div>
<div class="csharpcode"><pre>    &lt;add key=<span class="str">"sql"</span> <span class="kwrd">value</span>=<span class="str">"provider=Microsoft.Jet.OLEDB.4.0;data source=db.mdb"</span>/&gt;</pre></div>
<div class="csharpcode"><pre class="alt">  &lt;/appSettings&gt;</pre></div>
<div class="csharpcode"><pre>&lt;/configuration&gt;</pre></div>
<div class="csharpcode"><pre>---------------------------</pre></div>
<div class="csharpcode"><pre>提交消费信息的代码（当然，最好使用参数插入到数据库）：</pre></div>
<div class="csharpcode"><pre class="alt"><span class="rem">//提交消费信息到数据库</span></pre><pre>    <span class="kwrd">private</span> <span class="kwrd">void</span> button1_Click(<span class="kwrd">object</span> sender, EventArgs e)</pre><pre class="alt">    {</pre><pre>        <span class="rem">//得到数据库 表需要的数据</span></pre><pre class="alt">        <span class="kwrd">string</span> time = xfDatetime.Text;</pre><pre>        <span class="kwrd">string</span> type = xfType.SelectedItem.ToString();</pre><pre class="alt">        <span class="kwrd">double</span> money =<span class="kwrd">double</span>.Parse(xfMoney.Text);</pre><pre>        <span class="kwrd">string</span> address = xfAddress.Text;</pre><pre class="alt">        <span class="kwrd">string</span> person = xfPerson.Text;</pre><pre>        <span class="kwrd">string</span> info = xfInfo.Text;</pre><pre class="alt">        <span class="rem">//插入数据</span></pre><pre>        <span class="kwrd">string</span> str = <span class="str">"insert into expenditure(消费日期,消费类别,消费金额,消费地点,消费者,备注说明) "</span> +</pre><pre class="alt">            <span class="str">"values(#"</span> + time + <span class="str">"#,'"</span> + type + <span class="str">"',"</span> + money + <span class="str">",'"</span> + address + <span class="str">"','"</span> + person + <span class="str">"','"</span> + info + <span class="str">"')"</span>;</pre><pre>        <span class="rem">//执行SQL操作</span></pre><pre class="alt">        DBconn dbClass = <span class="kwrd">new</span> DBconn(sql);</pre><pre>        OleDbCommand command = <span class="kwrd">new</span> OleDbCommand(str, dbClass.Conn);</pre><pre class="alt">        dbClass.Conn.Open();</pre><pre>        command.ExecuteNonQuery();</pre><pre class="alt">        dbClass.Conn.Close();</pre><pre>        MessageBox.Show(<span class="str">"提交成功！"</span>);</pre><pre class="alt">    }</pre></div>
<div class="csharpcode">
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
－－－－－－－－－</div>
<div class="csharpcode">查询消费信息的代码：</div>
<div class="csharpcode"><pre class="alt"><span class="rem">//查询信息</span></pre><pre>    <span class="kwrd">private</span> <span class="kwrd">void</span> button2_Click(<span class="kwrd">object</span> sender, EventArgs e)</pre><pre class="alt">    {</pre><pre>        <span class="rem">//查询语句</span></pre><pre class="alt">        <span class="kwrd">string</span> str = <span class="str">"select * from expenditure "</span>;</pre><pre>        <span class="kwrd">if</span> (cxType.SelectedItem.ToString().Trim() != <span class="str">""</span>)</pre><pre class="alt">            str +=  <span class="str">"where 消费类别='"</span> + cxType.SelectedItem.ToString()+<span class="str">"'"</span>;</pre><pre>        <span class="kwrd">if</span> (cxperson.SelectedItem.ToString().Trim() != <span class="str">""</span>)</pre><pre class="alt">            str +=  <span class="str">" and  消费者='"</span> + cxperson.SelectedItem.ToString()+<span class="str">"'"</span>;</pre><pre>        str += <span class="str">" and  消费日期&gt;= #"</span> + cxBegintime.Value.ToShortDateString() + <span class="str">"#  and 消费日期&lt;= #"</span> + cxEndTime.Value.ToShortDateString() + <span class="str">"# "</span>;</pre><pre class="alt">        MessageBox.Show(str);</pre><pre>        <span class="rem">//执行查询 </span></pre><pre class="alt">        DBconn dbClass=<span class="kwrd">new</span> DBconn(sql);</pre><pre>        OleDbCommand olecommand = <span class="kwrd">new</span> OleDbCommand(str, dbClass.Conn);</pre><pre class="alt">        dbClass.Conn.Open();</pre><pre>        olecommand.ExecuteNonQuery();</pre><pre class="alt">        dbClass.Conn.Close();</pre><pre>        <span class="rem">//显示查询</span></pre><pre class="alt">        DataSet ds = dbClass.getdb(str);</pre><pre>        dataGridView1.DataSource = ds.Tables[0];</pre><pre class="alt">       </pre><pre>    }</pre><pre>－－－－－－－－－－－－－－－－－－－－－－－－</pre><pre>一小段代码！</pre></div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>

<div class="csharpcode"><pre>&nbsp;</pre></div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style> <img src ="http://www.cnblogs.com/cunmang/aggbug/871074.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42960/" target="_blank">[新闻]Facebook创始人:信息共享或存摩尔定律</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[原创]JScript学习摘要1</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/27/870876.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Mon, 27 Aug 2007 01:48:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/27/870876.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/870876.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/27/870876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/870876.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/870876.html</trackback:ping><description><![CDATA[<p><strong>－－－－－－－－－－－－－－－－－以前自学JScript的一点摘要－－－－－－－－－－－－－－－－－－－</strong></p> <p><strong>JavaScript的一些了解</strong>&nbsp;&nbsp;&nbsp;&nbsp; </p> <p>什么是JavaScrpt？最常见的误解就是，JavaScript是SUN公司的JAVA的简化的版本！JavaScript能控制浏览器的行为和内容，但是，它不能绘图和执行联网和多线程。</p> <p>&nbsp;&nbsp;&nbsp; JavaScript 是一种脚本语言，它的定位不是程序设计语言，语言结构上相比来说，比较简单点。JavaScript可以在客户端实现，也可以在服务器实现。</p> <p align="left">------------------------------------------------------------------------------------------------------------------------------------------</p> <p align="left"><strong>JScript 是微软对标准的JavaScript脚本语言的一种实现，并提供了一些可以利用IE的功能的增强特性</strong></p> <p align="left"><strong>变量</strong></p> <p align="left">1、变量的申明</p> <ul> <li> <div align="left">虽然不是必须，但是最好的还是在使用这个变量的时候，事先用 var 声明变量。</div></li></ul> <p align="left">2、变量的命名</p> <p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是一种区分大小写的语言，命名的规则：</p> <ul> <li>第一个字符必须是一个字母（大小写均可）、或一个下划线(_)或一个美元符 ($) <li>后续的字符可以是字母、数字、下划线或美元符  <li>变量名称不能是&nbsp;保留字 </li> <li>如果要声明一个变量并进行初始化，但又不指定任何特殊值，可以将其指定为一个专用值<strong>null</strong></li> <li>如果声明了一个变量但没有对其赋值，该变量存在，且为<strong>undefined</strong></li> <li>如果直接对变量赋值，就隐式地声明了一个变量（即不使用 <b>var</b>）。不过，不能在根本没有声明的情况下就使用一个变量。这样做将导致运行时产生错误</li></ul> <p>3、强制转换</p> <ul> <li>在某些环境下可能将变量的自动转换（或强制转换）或数据的一部分强制为别的类型。Number 类型易于被包括在字符串中，但字符串不能直接包含到数值中，为此提供了显式的转换函数<strong>parseInt()</strong>和<strong>parseFloat()</strong></li></ul> <p><strong>数据类型</strong></p> <p><strong>&nbsp;JScript</strong> 有六种数据类型。主要的类型有 number、string、object 以及 Boolean 类型。其他两种类型为 null 和undefined</p> <p><strong>String类型</strong></p> <ul> <li>字符串是用单引号或双引号来说明的（使用单引号来输入包含引号的字符串）</li></ul> <p><strong>Number</strong>类型</p> <ul> <li><b>NaN</b>，即不是一个数</li> <li>正无穷</li> <li>负无穷</li> <li>正数 0</li> <li>负数 0</li> <li>八进制整数前面加个"0" ，并可以包含从 0 到 7 的数字。如果某个数字前面有个"0" 但是又包含数字 "8"和/或 "9"，则该数字是一个十进制数。如果一个应该为八进制的数中包含了字母 "e" (或 "E") 将会产生一个错误。</li> <li>十六进制("hex") 整数前面加个&nbsp;"0x" （其中的 "X" 大小写均可），并且可以包含从 0 到 9 的数字以及从 A 到 F 的字符（字母的大小写均可）。字母 "e" 在十六进制记数法中是一个允许的数字，但并不是表示这是一个指数。字母 A 到 F 是作为单个的数字，用来表示以 10 为基数的 10 到 15 这些数</li> <li>八进制数和十六进制数可以是负数，但不能是小数。一个以单个 "0" 开头并包含一个小数点的数是一个十进制的浮点数；如果一个数以 "0x" 或 "00"开头并包含一个小数点，则该小数点右边的任何数都将被忽略</li></ul> <p><strong>Boolean</strong>类型</p> <ul> <li>Boolean类型的只能是true和false，决不能是1或0</li> <li>但是，在比较的时候，任何等于 0 的表达式被视为 false，而任何不等于 0 的语句都被视为 true</li></ul> <p><strong>运算符优先级</strong></p> <p>从高到低</p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/JScript1_89D6/82702.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="338" alt="82702" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/JScript1_89D6/82702_thumb.jpg" width="669" border="0"></a> </p> <p><strong>控制流程</strong></p> <ul> <li>for...in 循环中的循环计数器将遍历数组中的所有索引。它是一个字符串，而不是数字</li></ul> <p><strong>函数</strong></p> <ul> <li>可以创建自己的函数并在需要的地方使用。一个函数定义由一个 function 语句和一个 JScript 语句块组成</li></ul> <p><strong>对象</strong></p> <ul> <li><strong>在JScript</strong>里，对象本质上就是属性和方法的集合。方法是作为某个对象成员的函数，属性是作为对象成员的一个值或一组值（数组或对象的形式）。</li> <li>在 <strong>JScript</strong> 里，对象和数组是一样处理的。可以按名称（使用对象名称，后跟一个圆点和属性的名称）来引用一个对象的任何成员（属性和方法）, 也可以按其数组下标索引来引用。JScript 中下标的是从 0 开始编号的，也可以用其名称来引用下标</li> <li>当一个对象中的某个属性是另一个对象时，可以直接扩展这种命名约定</li></ul> <p>－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p> <p>&nbsp;</p> <p align="left">&nbsp;</p> <p align="left">&nbsp;</p> <p align="left">&nbsp;</p> <p align="left">&nbsp;</p> <p align="left"></p><img src ="http://www.cnblogs.com/cunmang/aggbug/870876.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42960/" target="_blank">[新闻]Facebook创始人:信息共享或存摩尔定律</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随]程序设计模式的有趣解释－追MM</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/24/867640.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Thu, 23 Aug 2007 22:49:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/24/867640.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/867640.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/24/867640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/867640.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/867640.html</trackback:ping><description><![CDATA[<p><strong><u>（来自csdn，也不知道具体出处了，见谅，很不错的）</u></strong></p> <p><strong><u>创建型模式</u></strong> <br>&nbsp;&nbsp;&nbsp; 1、FACTORY一追MM少不了请吃饭了，麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西，虽然口味有所不同，但不管你带MM去麦当劳或肯德基，只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory </p> <p>&nbsp;&nbsp;&nbsp; 工厂模式：客户类和工厂类分开。消费者任何时候需要某种产品，只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时，工厂类也要做相应的修改。如：如何创建及如何向客户端提供。  <p>&nbsp;&nbsp;&nbsp; 2、BUILDER—MM最爱听的就是“我爱你”这句话了，见到不同地方的MM,要能够用她们的方言跟她说这句话哦，我有一个多种语言翻译机，上面每种语言都有一个按键，见到MM我只要按对应的键，它就能够用相应的语言说出“我爱你”这句话了，国外的MM 也可以轻松搞掂，这就是我的“我爱你”builder。（这一定比美军在伊拉克用的翻译机好卖）  <p>&nbsp;&nbsp;&nbsp; 建造模式：将产品的内部表象和产品的生成过程分割开来，从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化，客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。  <p>&nbsp;&nbsp;&nbsp; 3、FACTORY METHOD—请MM去麦当劳吃汉堡，不同的MM有不同的口味，要每个都记住是一件烦人的事情，我一般采用Factory?Method模式，带着MM到服务员那儿，说“要一个汉堡”，具体要什么样的汉堡呢，让MM直接跟服务员说就行了。  <p>&nbsp;&nbsp;&nbsp; 工厂方法模式：核心工厂类不再负责所有产品的创建，而是将具体创建的工作交给子类去做，成为一个抽象工厂角色，仅负责给出具体工厂类必须实现的接口，而不接触哪一个产品类应当被实例化这种细节。  <p>&nbsp;&nbsp;&nbsp; 4、PROTOTYPE—跟MM用QQ聊天，一定要说些深情的话语了，我搜集了好多肉麻的情话，需要时只要copy出来放到QQ里面就行了，这就是我的情话prototype了。（100块钱一份，你要不要）  <p>&nbsp;&nbsp;&nbsp; 原始模型模式：通过给出一个原型对象来指明所要创建的对象的类型，然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类，产品类不需要非得有任何事先确定的等级结构，原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。  <p>&nbsp;&nbsp;&nbsp; 5、SINGLETON—俺有6个漂亮的老婆，她们的老公都是我，我就是我们家里的老公Sigleton，她们只要说道“老公”，都是指的同一个人，那就是我(刚才做了个梦啦，哪有这么好的事)  <p>&nbsp;&nbsp;&nbsp; 单例模式：单例模式确保某一个类只有一个实例，而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。  <p><strong><u>结构型模式</u></strong>  <p>&nbsp;&nbsp;&nbsp; 6、ADAPTER—在朋友聚会上碰到了一个美女Sarah，从香港来的，可我不会说粤语，她不会说普通话，只好求助于我的朋友kent了，他作为我和Sarah之间的Adapter，让我和Sarah可以相互交谈了(也不知道他会不会耍我)  <p>&nbsp;&nbsp;&nbsp; 适配器（变压器）模式：把一个类的接口变换成客户端所期待的另一种接口，从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。  <p>&nbsp;&nbsp;&nbsp; 7、BRIDGE—早上碰到MM，要说早上好，晚上碰到MM，要说晚上好；碰到MM穿了件新衣服，要说你的衣服好漂亮哦，碰到MM新做的发型，要说你的头发好漂亮哦。不要问我“早上碰到MM新做了个发型怎么说”这种问题，自己用BRIDGE组合一下不就行了  <p>&nbsp;&nbsp;&nbsp; 桥梁模式：将抽象化与实现化脱耦，使得二者可以独立的变化，也就是说将他们之间的强关联变成弱关联，也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系，从而使两者可以独立的变化。  <p>&nbsp;&nbsp;&nbsp; 8、COMPOSITE—Mary今天过生日。“我过生日，你要送我一件礼物。”“嗯，好吧，去商店，你自己挑。”“这件T恤挺漂亮，买，这条裙子好看，买，这个包也不错，买。”“喂，买了三件了呀，我只答应送一件礼物的哦。”“什么呀，T恤加裙子加包包，正好配成一套呀，小姐，麻烦你包起来。” “……”，MM都会用Composite模式了，你会了没有？  <p>&nbsp;&nbsp;&nbsp; 合成模式：合成模式将对象组织到树结构中，可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。  <p>&nbsp;&nbsp;&nbsp; 9、DECORATOR—Mary过完轮到Sarly过生日，还是不要叫她自己挑了，不然这个月伙食费肯定玩完，拿出我去年在华山顶上照的照片，在背面写上“最好的的礼物，就是爱你的Fita”，再到街上礼品店买了个像框（卖礼品的MM也很漂亮哦），再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起来……，我们都是Decorator，最终都在修饰我这个人呀，怎么样，看懂了吗？  <p>&nbsp;&nbsp;&nbsp; 装饰模式：装饰模式以对客户端透明的方式扩展对象的功能，是继承关系的一个替代方案，提供比继承更多的灵活性。动态给一个对象增加功能，这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。  <p>&nbsp;&nbsp;&nbsp; 10、FACADE—我有一个专业的Nikon相机，我就喜欢自己手动调光圈、快门，这样照出来的照片才专业，但MM可不懂这些，教了半天也不会。幸好相机有Facade设计模式，把相机调整到自动档，只要对准目标按快门就行了，一切由相机自动调整，这样 MM也可以用这个相机给我拍张照片了。  <p>&nbsp;&nbsp;&nbsp; 门面模式：外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口，使得子系统更易于使用。每一个子系统只有一个门面类，而且此门面类只有一个实例，也就是说它是一个单例模式。但整个系统可以有多个门面类。  <p>11、 FLYWEIGHT—每天跟MM发短信，手指都累死了，最近买了个新手机，可以把一些常用的句子存在手机里，要用的时候，直接拿出来，在前面加上MM的名字就可以发送了，再不用一个字一个字敲了。共享的句子就是Flyweight，MM的名字就是提取出来的外部特征，根据上下文情况使用。  <p>&nbsp;&nbsp;&nbsp; 享元模式：FLYWEIGHT在拳击比赛中指最轻量级。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部，不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能影响内蕴状态，它们是相互独立的。将可以共享的状态和不可以共享的状态从常规类中区分开来，将不可以共享的状态从类里剔除出去。客户端不可以直接创建被共享的对象，而应当使用一个工厂对象负责创建被共享的对象。享元模式大幅度的降低内存中对象的数量。  <p>&nbsp;&nbsp;&nbsp; 12、PROXY —跟MM在网上聊天，一开头总是“hi,你好”,“你从哪儿来呀？”“你多大了？”“身高多少呀？”这些话，真烦人，写个程序做为我的Proxy吧，凡是接收到这些话都设置好了自动的回答，接收到其他的话时再通知我回答，怎么样，酷吧。?  <p>&nbsp;&nbsp;&nbsp; 代理模式：代理模式给某一个对象提供一个代理对象，并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下，客户不想或者不能够直接引用一个对象，代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象，而仅仅持有一个被代理对象的接口，这时候代理对象不能够创建被代理对象，被代理对象必须有系统的其他角色代为创建并传入。  <p>&nbsp;<strong><u>行为模式</u></strong>  <p>&nbsp;&nbsp;&nbsp; 13、CHAIN?OF?RESPONSIBLEITY—晚上去上英语课，为了好开溜坐到了最后一排，哇，前面坐了好几个漂亮的MM哎，找张纸条，写上 “Hi,可以做我的女朋友吗？如果不愿意请向前传”，纸条就一个接一个的传上去了，糟糕，传到第一排的M M把纸条传给老师了，听说是个老处女呀，快跑!  <p>&nbsp;&nbsp;&nbsp; 责任链模式：在责任链模式中，很多对象由每一个对象对其下家的引用而接  <p>&nbsp;&nbsp;&nbsp; 起来形成一条链。请求在这个链上传递，直到链上的某一个对象决定处理此请求。客户并不知道链上的哪一个对象最终处理这个请求，系统可以在不影响客户端的情况下动态的重新组织链和分配责任。处理者有两个选择：承担责任或者把责任推给下家。一个请求可以最终不被任何接收端对象所接受。  <p>&nbsp;&nbsp;&nbsp; 14、COMMAND—俺有一个MM家里管得特别严，没法见面，只好借助于她弟弟在我们俩之间传送信息，她对我有什么指示，就写一张纸条让她弟弟带给我。这不，她弟弟又传送过来一个COMMAND，为了感谢他，我请他吃了碗杂酱面，哪知道他说：“我同时给我姐姐三个男朋友送COMMAND，就数你最小气，才请我吃面。”，:-(  <p>&nbsp;&nbsp;&nbsp; 命令模式：命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开，委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来，使得请求的一方不必知道接收请求的一方的接口，更不必知道请求是怎么被接收，以及操作是否执行，何时被执行以及是怎么被执行的。系统支持命令的撤消。  <p>&nbsp;&nbsp;&nbsp; 15、INTERPRETER—俺有一个《泡MM真经》，上面有各种泡MM的攻略，比如说去吃西餐的步骤、去看电影的方法等等，跟MM约会时，只要做一个Interpreter，照着上面的脚本执行就可以了。  <p>&nbsp;&nbsp;&nbsp; 解释器模式：给定一个语言后，解释器模式可以定义出其文法的一种表示，并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式将描述怎样在有了一个简单的文法后，使用模式设计解释这些语句。在解释器模式里面提到的语言是指任何解释器对象能够解释的任何组合。在解释器模式中需要定义一个代表文法的命令类的等级结构，也就是一系列的组合规则。每一个命令对象都有一个解释方法，代表对命令对象的解释。命令对象的等级结构中的对象的任何排列组合都是一个语言。  <p>&nbsp;&nbsp;&nbsp; 16、ITERATOR—我爱上了Mary，不顾一切的向她求婚。  <p>&nbsp;&nbsp;&nbsp; Mary：“想要我跟你结婚，得答应我的条件”  <p>&nbsp;&nbsp;&nbsp; 我：“什么条件我都答应，你说吧”  <p>&nbsp;&nbsp;&nbsp; Mary：“我看上了那个一克拉的钻石”  <p>&nbsp;&nbsp;&nbsp; 我：“我买，我买，还有吗？”  <p>&nbsp;&nbsp;&nbsp; Mary：“我看上了湖边的那栋别墅”  <p>&nbsp;&nbsp;&nbsp; 我：“我买，我买，还有吗？”  <p>&nbsp;&nbsp;&nbsp; Mary：“xxxxxxxxx”  <p>&nbsp;&nbsp;&nbsp; ……  <p>&nbsp;&nbsp;&nbsp; 迭代子模式：迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起形成的总体称之为聚集，聚集对象是能够包容一组对象的容器对象。迭代子模式将迭代逻辑封装到一个独立的子对象中，从而与聚集本身隔开。迭代子模式简化了聚集的界面。每一个聚集对象都可以有一个或一个以上的迭代子对象，每一个迭代子的迭代状态可以是彼此独立的。迭代算法可以独立于聚集角色变化。  <p>&nbsp;&nbsp;&nbsp; 17、MEDIATOR—四个MM打麻将，相互之间谁应该给谁多少钱算不清楚了，幸亏当时我在旁边，按照各自的筹码数算钱，赚了钱的从我这里拿，赔了钱的也付给我，一切就OK啦，俺得到了四个MM的电话。  <p>&nbsp;&nbsp;&nbsp; 调停者模式：调停者模式包装了一系列对象相互作用的方式，使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时，不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化，把对象在小尺度的行为上与其他对象的相互作用分开处理。  <p>18、MEMENTO—同时跟几个MM聊天时，一定要记清楚刚才跟MM说了些什么话，不然MM发现了会不高兴的哦，幸亏我有个备忘录，刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存，这样可以随时察看以前的记录啦。  <p>&nbsp;&nbsp;&nbsp; 备忘录模式：备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下，将一个对象的状态捉住，并外部化，存储起来，从而可以在将来合适的时候把这个对象还原到存储起来的状态。  <p>&nbsp;&nbsp;&nbsp; 19、OBSERVER—想知道咱们公司最新MM情报吗？加入公司的MM情报邮件组就行了，tom负责搜集情报，他发现的新情报不用一个一个通知我们，直接发布给邮件组，我们作为订阅者（观察者）就可以及时收到情报啦  <p>&nbsp;&nbsp;&nbsp; 观察者模式：观察者模式定义了一种一队多的依赖关系，让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时，会通知所有观察者对象，使他们能够自动更新自己。  <p>&nbsp;&nbsp;&nbsp; 20、STATE—跟MM交往时，一定要注意她的状态哦，在不同的状态时她的行为会有不同，比如你约她今天晚上去看电影，对你没兴趣的MM就会说“有事情啦”，对你不讨厌但还没喜欢上的MM就会说“好啊，不过可以带上我同事么？”，已经喜欢上你的MM就会说“几点钟？看完电影再去泡吧怎么样？”，当然你看电影过程中表现良好的话，也可以把MM的状态从不讨厌不喜欢变成喜欢哦。  <p>&nbsp;&nbsp;&nbsp; 状态模式：状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里，每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候，其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时，系统便改变所选的子类。  <p>&nbsp;&nbsp;&nbsp; 21、STRATEGY—跟不同类型的MM约会，要用不同的策略，有的请电影比较好，有的则去吃小吃效果不错，有的去海边浪漫最合适，单目的都是为了得到MM的芳心，我的追MM锦囊中有好多Strategy哦。  <p>&nbsp;&nbsp;&nbsp; 策略模式：策略模式针对一组算法，将每一个算法封装到具有共同接口的独立的类中，从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类，各种算法在具体的策略类中提供。由于算法和环境独立开来，算法的增减，修改都不会影响到环境和客户端。  <p>&nbsp;&nbsp;&nbsp; 22、TEMPLATE?METHOD——看过《如何说服女生上床》这部经典文章吗？女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八大步骤(Template method)，但每个步骤针对不同的情况，都有不一样的做法，这就要看你随机应变啦(具体实现)；  <p>&nbsp;&nbsp;&nbsp; 模板方法模式：模板方法模式准备一个抽象类，将部分逻辑以具体方法以及具体构造子的形式实现，然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法，从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架，而将逻辑的细节留给具体的子类去实现。  <p>&nbsp;&nbsp;&nbsp; 23、VISITOR—情人节到了，要给每个MM送一束鲜花和一张卡片，可是每个MM送的花都要针对她个人的特点，每张卡片也要根据个人的特点来挑，我一个人哪搞得清楚，还是找花店老板和礼品店老板做一下Visitor，让花店老板根据MM的特点选一束花，让礼品店老板也根据每个人特点选一张卡，这样就轻松多了；  <p>&nbsp;&nbsp;&nbsp; 访问者模式：访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话，接受这个操作的数据结构可以保持不变。访问者模式适用于数据结构相对未定的系统，它把数据结构和作用于结构上的操作之间的耦合解脱开，使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很容易，就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中，而不是分散到一个个的节点类中。当使用访问者模式时，要将尽可能多的对象浏览逻辑放在访问者类中，而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。</p><img src ="http://www.cnblogs.com/cunmang/aggbug/867640.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42959/" target="_blank">[新闻]微软承认Vista用户账户控制功能有问题</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随]SQL Server 和ACCESS 、EXCEL 的数据转换</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/23/867342.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Thu, 23 Aug 2007 12:28:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/23/867342.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/867342.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/23/867342.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/867342.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/867342.html</trackback:ping><description><![CDATA[<div class="csharpcode"><pre class="alt"><strong>一、 <span class="kwrd">SQL</span> SERVER 和ACCESS的数据导入导出</strong></pre><pre>常规的数据导入导出：</pre><pre class="alt">使用DTS向导迁移你的Access数据到SQL Server，你可以使用这些步骤: </pre><pre>　　1)在SQL SERVER企业管理器中的Tools（工具）菜单上，选择Data Transformation </pre><pre class="alt">&nbsp;</pre><pre>　　2)Services（数据转换服务），然后选择 czdImport <span class="kwrd">Data</span>（导入数据）。 </pre><pre class="alt">&nbsp;</pre><pre>　　3)在Choose a <span class="kwrd">Data</span> Source（选择数据源）对话框中选择Microsoft Access <span class="kwrd">as</span> the Source，然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 </pre><pre class="alt">&nbsp;</pre><pre>　　4)在Choose a Destination（选择目标）对话框中，选择Microsoft OLE　DB Prov ider <span class="kwrd">for</span> <span class="kwrd">SQL</span>　Server，选择数据库服务器，然后单击必要的验证方式。 </pre><pre class="alt">&nbsp;</pre><pre>　　5)在Specify <span class="kwrd">Table</span> Copy（指定表格复制）或Query（查询）对话框中，单击Copy tables（复制表格）。 </pre><pre>&nbsp;</pre><pre class="alt"><p>    6)在Select Source Tables（选择源表格）对话框中，单击Select <span class="kwrd">All</span>（全部选定）。下一步，完成。</p><p>======================================================</p></pre><pre>Transact-SQL语句进行导入导出：</pre><pre class="alt">&nbsp;</pre><pre>1. )在SQL SERVER里查询access数据:</pre><pre>======================================================</pre><pre class="alt"><span class="kwrd">SELECT</span> * </pre><pre><span class="kwrd">FROM</span> <span class="kwrd">OpenDataSource</span>( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source="c:\DB.mdb";User ID=Admin;Password='</span>)...表名</pre><pre>&nbsp;</pre><pre class="alt">2. )将access导入SQL server </pre><pre>======================================================</pre><pre class="alt">在SQL SERVER 里运行:</pre><pre><span class="kwrd">SELECT</span> *</pre><pre class="alt"><span class="kwrd">INTO</span> newtable</pre><pre><span class="kwrd">FROM</span> <span class="kwrd">OPENDATASOURCE</span> (<span class="str">'Microsoft.Jet.OLEDB.4.0'</span>, </pre><pre class="alt"><span class="str">'Data Source="c:\DB.mdb";User ID=Admin;Password='</span> )...表名</pre><pre>&nbsp;</pre><pre class="alt">3. )将SQL SERVER表里的数据插入到Access表中</pre><pre>======================================================</pre><pre class="alt">在SQL SERVER 里运行：</pre><pre>insert <span class="kwrd">into</span> <span class="kwrd">OpenDataSource</span>( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source=" c:\DB.mdb";User ID=Admin;Password='</span>)...表名 </pre><pre>(列名1,列名2)</pre><pre class="alt"><span class="kwrd">select</span> 列名1,列名2 <span class="kwrd">from</span> sql表</pre><pre>实例：</pre><pre class="alt">insert <span class="kwrd">into</span> <span class="kwrd">OPENROWSET</span>(<span class="str">'Microsoft.Jet.OLEDB.4.0'</span>, </pre><pre><span class="str">'C:\db.mdb'</span>;<span class="str">'admin'</span>;<span class="str">''</span>, Test) </pre><pre class="alt"><span class="kwrd">select</span> id,name <span class="kwrd">from</span> Test</pre><pre>INSERT <span class="kwrd">INTO</span> <span class="kwrd">OPENROWSET</span>(<span class="str">'Microsoft.Jet.OLEDB.4.0'</span>, <span class="str">'c:\trade.mdb'</span>; <span class="str">'admin'</span>; <span class="str">''</span>, 表名)</pre><pre class="alt"><span class="kwrd">SELECT</span> *</pre><pre><span class="kwrd">FROM</span> sqltablename</pre><pre class="alt">&nbsp;</pre><pre><strong>二、 <span class="kwrd">SQL</span> SERVER 和EXCEL的数据导入导出</strong></pre><pre>&nbsp;</pre><pre class="alt">1)在SQL SERVER里查询Excel数据:</pre><pre>======================================================</pre><pre class="alt"><span class="kwrd">SELECT</span> * </pre><pre><span class="kwrd">FROM</span> <span class="kwrd">OpenDataSource</span>( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'</span>)...[Sheet1$]</pre><pre>下面是个查询的示例，它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。</pre><pre class="alt"><span class="kwrd">SELECT</span> * </pre><pre><span class="kwrd">FROM</span> <span class="kwrd">OpenDataSource</span> ( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'</span>)...xactions</pre><pre>&nbsp;</pre><pre class="alt">2)将Excel的数据导入SQL server :</pre><pre>======================================================</pre><pre class="alt"><span class="kwrd">SELECT</span> * <span class="kwrd">into</span> newtable</pre><pre><span class="kwrd">FROM</span> <span class="kwrd">OpenDataSource</span>( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'</span>)...[Sheet1$]</pre><pre>实例:</pre><pre class="alt"><span class="kwrd">SELECT</span> * <span class="kwrd">into</span> newtable</pre><pre><span class="kwrd">FROM</span> <span class="kwrd">OpenDataSource</span>( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'</span>)...xactions</pre><pre>&nbsp;</pre><pre class="alt">3)将SQL SERVER中查询到的数据导成一个Excel文件</pre><pre><span class="rem">======================================================</span></pre><pre class="alt">T-SQL代码：</pre><pre><span class="kwrd">EXEC</span> master..xp_cmdshell <span class="str">'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'</span></pre><pre class="alt">参数：S 是SQL服务器名；U是用户；P是密码</pre><pre>说明：还可以导出文本文件等多种格式</pre><pre class="alt">实例:<span class="kwrd">EXEC</span> master..xp_cmdshell <span class="str">'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'</span></pre><pre><span class="kwrd">EXEC</span> master..xp_cmdshell <span class="str">'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'</span></pre><pre class="alt">在VB6中应用ADO导出EXCEL文件代码： </pre><pre>Dim cn <span class="kwrd">As</span> <span class="kwrd">New</span> ADODB.<span class="kwrd">Connection</span></pre><pre class="alt">cn.<span class="kwrd">open</span> "Driver={<span class="kwrd">SQL</span> Server};Server=WEBSVR;<span class="kwrd">DataBase</span>=WebMis;UID=sa;WD=123;"</pre><pre>cn.<span class="kwrd">execute</span> "master..xp_cmdshell <span class="str">'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'</span>"</pre><pre class="alt">&nbsp;</pre><pre>4)在SQL SERVER里往Excel插入数据:</pre><pre class="alt">======================================================</pre><pre>insert <span class="kwrd">into</span> <span class="kwrd">OpenDataSource</span>( <span class="str">'Microsoft.Jet.OLEDB.4.0'</span>,</pre><pre class="alt"><span class="str">'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'</span>)...table1 (A1,A2,A3) <span class="kwrd">values</span> (1,2,3)</pre><pre>T-SQL代码：</pre><pre class="alt">INSERT <span class="kwrd">INTO</span> </pre><pre><span class="kwrd">OPENDATASOURCE</span>(<span class="str">'Microsoft.JET.OLEDB.4.0'</span>, </pre><pre class="alt"><span class="str">'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls'</span>)...[Filiale1$] </pre><pre>(bestand, produkt) <span class="kwrd">VALUES</span> (20, <span class="str">'Test'</span>) </pre></div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style><img src ="http://www.cnblogs.com/cunmang/aggbug/867342.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42958/" target="_blank">[新闻]资本寒冬侵袭中国视频网站 营销春天或不远</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[原创]treeview简单根据数据库的数据，显示多级节点</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/21/864340.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Tue, 21 Aug 2007 10:39:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/21/864340.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/864340.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/21/864340.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/864340.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/864340.html</trackback:ping><description><![CDATA[<p>如图：</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/treeview_10621/1.jpg" atomicselection="true"><img style="border: 0px none ;" alt="1" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/treeview_10621/1_thumb.jpg" border="0" height="359" width="225" /></a> </p>
<p>要建立多少个数据表？？？其实一个数据库，一张表就足够，自我调用的形式：</p>
<div class="csharpcode">
<pre class="alt">－－创建个数据库</pre>
<pre><span class="kwrd">create</span> <span class="kwrd">database</span> live</pre>
<pre class="alt"><span class="kwrd">use</span> live</pre>
<pre>--创建个表</pre>
<pre class="alt"><span class="kwrd">create</span> <span class="kwrd">table</span> live</pre>
<pre>(</pre>
<pre class="alt"> cid <span class="kwrd">int</span> <span class="kwrd">identity</span>(1,1) <span class="kwrd">primary</span> <span class="kwrd">key</span> <span class="kwrd">not</span> <span class="kwrd">null</span>,</pre>
<pre> <span class="kwrd">class</span> <span class="kwrd">char</span>(20) <span class="kwrd">not</span> <span class="kwrd">null</span>,</pre>
<pre class="alt"> pcid <span class="kwrd">int</span> <span class="kwrd">not</span> <span class="kwrd">null</span></pre>
<pre>)</pre>
<pre class="alt"><span class="kwrd">select</span> * <span class="kwrd">from</span> live</pre>
<pre>--插入根节点的标题</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'吃'</span>,0)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'穿'</span>,0)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'住'</span>,0)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'行'</span>,0)</pre>
<pre class="alt">--插入子节点的标题</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'西餐'</span>,1)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'中餐'</span>,1)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'嘻哈系列'</span>,2)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'正装系列'</span>,2)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'牛仔系列'</span>,2)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'瓦片房'</span>,3)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'茅草房'</span>,3)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'白坯房'</span>,3)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'精装小屋'</span>,3)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'两个轮子的'</span>,4)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'四个轮子的'</span>,4)</pre>
<pre class="alt">--插入子结点的子节点的标题</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'奔驰'</span>,15)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'奥迪'</span>,15)</pre>
<pre>insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'尼桑'</span>,15)</pre>
<pre class="alt">insert <span class="kwrd">into</span> live <span class="kwrd">values</span>(<span class="str">'别克'</span>,15)</pre>
</div>
<p>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
－－－－－－－－－－－－－－－－－－－－</p>
<p>以上的是创建数据库，并插入数据，具体实现代码：</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">using</span> System;</pre>
<pre><span class="kwrd">using</span> System.Collections.Generic;</pre>
<pre class="alt"><span class="kwrd">using</span> System.ComponentModel;</pre>
<pre><span class="kwrd">using</span> System.Data;</pre>
<pre class="alt"><span class="kwrd">using</span> System.Drawing;</pre>
<pre><span class="kwrd">using</span> System.Text;</pre>
<pre class="alt"><span class="kwrd">using</span> System.Windows.Forms;</pre>
<pre><span class="kwrd">using</span> System.Data.SqlClient;</pre>
<pre class="alt">&nbsp;</pre>
<pre><span class="kwrd">namespace</span> treeviewANDdatabase</pre>
<pre class="alt">{</pre>
<pre>    <span class="kwrd">public</span> <span class="kwrd">partial</span> <span class="kwrd">class</span> Form1 : Form</pre>
<pre class="alt">    {</pre>
<pre>        <span class="kwrd">public</span> Form1()</pre>
<pre class="alt">        {</pre>
<pre>            InitializeComponent();</pre>
<pre class="alt">        }</pre>
<pre>  </pre>
<pre class="alt">        <span class="kwrd">private</span> <span class="kwrd">void</span> Form1_Load(<span class="kwrd">object</span> sender, EventArgs e)</pre>
<pre>        {</pre>
<pre class="alt">            <span class="rem">//连接数据库</span></pre>
<pre>            SqlConnection conn = <span class="kwrd">new</span> SqlConnection(<span class="str">"server=admin;uid=sa;pwd=sa;database=live"</span>);</pre>
<pre class="alt">            conn.Open();</pre>
<pre>            <span class="rem">//数据的筛选</span></pre>
<pre class="alt">            <span class="kwrd">string</span> str = <span class="str">"select * from live"</span>;</pre>
<pre>            <span class="rem">//DataAdapter，它起着桥梁的作用，在 DataSet 和其源数据存储区之间进行数据检索和保存</span></pre>
<pre class="alt">            SqlDataAdapter da = <span class="kwrd">new</span> SqlDataAdapter(str, conn);</pre>
<pre>            <span class="rem">//填充 dataset 具有类似数据库的结构，如表、列、关系和约束！</span></pre>
<pre class="alt">            DataSet ds = <span class="kwrd">new</span> DataSet();</pre>
<pre>            da.Fill(ds);</pre>
<pre class="alt">            <span class="rem">//调用方法</span></pre>
<pre>            nodes(<span class="kwrd">this</span>.treeView1.Nodes, ds, 0);</pre>
<pre class="alt">           </pre>
<pre>        }</pre>
<pre class="alt">        <span class="rem">//方法</span></pre>
<pre>        <span class="kwrd">private</span> <span class="kwrd">void</span> nodes(TreeNodeCollection tnode,DataSet ds, <span class="kwrd">int</span> id)</pre>
<pre class="alt">        {</pre>
<pre>            <span class="rem">//创建视图 ，应为只有一张表</span></pre>
<pre class="alt">            DataView dview = <span class="kwrd">new</span> DataView(ds.Tables[0]);</pre>
<pre>            <span class="rem">//视图的好处，在于能方便筛选数据</span></pre>
<pre class="alt">            dview.RowFilter = <span class="str">"[pcid]="</span> + id+ <span class="str">""</span>;</pre>
<pre>            <span class="rem">//显示每个节点的标题,递归！</span></pre>
<pre class="alt">            <span class="kwrd">foreach</span> (DataRowView row <span class="kwrd">in</span> dview)</pre>
<pre>            {</pre>
<pre class="alt">                TreeNode  node = <span class="kwrd">new</span> TreeNode();</pre>
<pre>                node.Text = row[<span class="str">"class"</span>].ToString();</pre>
<pre class="alt">                tnode.Add(node);</pre>
<pre>                nodes(node.Nodes, ds,Int32.Parse( row[<span class="str">"cid"</span>].ToString()));</pre>
<pre class="alt">            }</pre>
<pre>        }</pre>
<pre class="alt">       </pre>
<pre>    }</pre>
<pre class="alt">}</pre>
</div>
<p>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>OK，就这么简单。。。当然，treeview的应用远远没那么简单！</p>
<img src ="http://www.cnblogs.com/cunmang/aggbug/864340.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42957/" target="_blank">[新闻]金融风暴波及全球创业板 中国概念股难独善其身</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随]测试了下我的Blog价值（汗颜了）</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/20/863132.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Mon, 20 Aug 2007 12:39:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/20/863132.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/863132.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/20/863132.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/863132.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/863132.html</trackback:ping><description><![CDATA[<p>今天，朋友给了我个测试Blog的网站，没事，也去玩玩。。。</p> <p>URL：<a title="http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/" href="http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/">http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/</a></p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/Blog_12234/1.jpg" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="245" alt="1" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/Blog_12234/1_thumb.jpg" width="549" border="0"></a> </p> <p>哎。。结果真的意料之中（我心里真的在恶想：“不会一文不值吧”？？？！），汗颜了</p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/Blog_12234/1_1.jpg" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="209" alt="1" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/Blog_12234/1_thumb_1.jpg" width="118" border="0"></a> </p> <p>有兴趣的朋友可以去玩玩。。。很久以前的游戏了！</p><img src ="http://www.cnblogs.com/cunmang/aggbug/863132.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42956/" target="_blank">[新闻]携程范敏：CEO从接发传真做起</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随]C#轻松解决世纪迷题</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/20/862383.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Mon, 20 Aug 2007 02:38:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/20/862383.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/862383.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/20/862383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/862383.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/862383.html</trackback:ping><description><![CDATA[<p>来自：Google<br />
</p>
<p>下面的问题相信很多人都听过：  </p>
<p>　　1 有五栋五种颜色的房子  </p>
<p>　　2 每一位房子的主人国籍都不同  </p>
<p>　　3 这五个人每人只喝一种饮料，只抽一种牌子的香烟，只养一种宠物  </p>
<p>　　4 没有人有相同的宠物，抽相同牌子的香烟，喝相同的饮料  </p>
<p>-----------------------------------------------------------------------------------------------  </p>
<p>　　提示：  </p>
<p>　　1、 英国人住在红房子里  </p>
<p>　　2 、瑞典人养了一条狗  </p>
<p>　　3 、丹麦人喝茶  </p>
<p>　　4 、绿房子在白房子左边  </p>
<p>　　5 、绿房子主人喝咖啡  </p>
<p>　　6 、抽PALL MALL烟的人养了一只鸟  </p>
<p>　　7 、黄房子主人抽DUNHILL烟  </p>
<p>　　8 、住在中间那间房子的人喝牛奶  </p>
<p>　　9 、挪威人住第一间房子  </p>
<p>　　10 、抽混合烟的人住在养鱼人的旁边  </p>
<p>　　11 、养马人住在DUNHILL烟的人旁边  </p>
<p>　　12 、抽BLUE MASTER烟的人喝啤酒  </p>
<p>　　13、 德国人抽PRINCE烟  </p>
<p>　　14 、挪威人住在蓝房子旁边  </p>
<p>　　15 、抽混合烟的人的邻居喝矿泉水  </p>
<p>　　问题是：谁养鱼？  </p>
<p>||-&gt;这道迷题出自1981年柏林的德国逻辑思考学院。据说世界上只有2%的人能出答案。就连大名鼎鼎的爱因斯坦也成为此题大伤脑筋，所以这道题也经常被国内外知名公司用做面试题目，相信许多朋友都只做出过一个答案，如果碰巧你属于那98%该怎么办呢。没关系，如果这个问题用电脑来解决就非常easy了。程序代码如下： </p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">using</span> System;</pre>
<pre><span class="kwrd">namespace</span> netsafe.math</pre>
<pre class="alt">{</pre>
<pre>　　<span class="kwrd">public</span>　　<span class="kwrd">class</span> ayst</pre>
<pre class="alt">　　{</pre>
<pre><span class="rem">/// &lt;summary&gt;</span></pre>
<pre class="alt"><span class="rem">/// 问题中的所有元素</span></pre>
<pre><span class="rem">/// &lt;/summary&gt;</span></pre>
<pre class="alt"><span class="kwrd">string</span>[,] data=　　{{<span class="str">"黄房子"</span>,<span class="str">"蓝房子"</span>,<span class="str">"白房子"</span>,<span class="str">"红房子"</span>,<span class="str">"绿房子"</span>},</pre>
<pre>{<span class="str">"挪威人"</span>,<span class="str">"英国人"</span>,<span class="str">"德国人"</span>,<span class="str">"丹麦人"</span>,<span class="str">"瑞典人"</span>},</pre>
<pre class="alt">{<span class="str">"DUNHILL"</span>,<span class="str">"PRINCE"</span>,<span class="str">"混合烟"</span>, <span class="str">"PALL MALL"</span>,<span class="str">"BLUE MASTER"</span>},</pre>
<pre>{<span class="str">"咖 啡"</span>,<span class="str">"矿泉水"</span>,<span class="str">"茶"</span>,<span class="str">"牛奶"</span>,<span class="str">" 啤酒 "</span>},</pre>
<pre class="alt">{<span class="str">"鱼"</span>,<span class="str">" 恐龙"</span>,<span class="str">"马"</span>,　　<span class="str">"鸟"</span>,<span class="str">"狗"</span>}};</pre>
<pre><span class="rem">/// &lt;summary&gt;/// answer用来存放答案</span></pre>
<pre class="alt"><span class="rem">/// &lt;/summary&gt;</span></pre>
<pre><span class="kwrd">int</span>[,] answer=<span class="kwrd">new</span> <span class="kwrd">int</span>[6, 6];</pre>
<pre class="alt"><span class="kwrd">int</span>[,] ALL=<span class="kwrd">new</span> <span class="kwrd">int</span>[6,122];</pre>
<pre><span class="kwrd">int</span>　　count=1;</pre>
<pre class="alt"><span class="kwrd">int</span>　　nLevel　　= 0;</pre>
<pre><span class="kwrd">int</span>[] List=<span class="kwrd">new</span> <span class="kwrd">int</span>[6];</pre>
<pre class="alt"><span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">void</span>　　Main(<span class="kwrd">string</span>[] args)</pre>
<pre>{</pre>
<pre class="alt">　　ayst c=<span class="kwrd">new</span> ayst();</pre>
<pre>　　c.p();　　<span class="rem">///生成全排列到all</span></pre>
<pre class="alt">　　c.run();</pre>
<pre>　　Console.Read(); <span class="rem">/// 按任意键继续</span></pre>
<pre class="alt">　　}</pre>
<pre><span class="kwrd">void</span> run()</pre>
<pre class="alt">{</pre>
<pre>　　<span class="kwrd">int</span>　　i1,i2,i3,i4,i5;<span class="rem">///通过逻辑条件顺序的有效选择来优化程序</span></pre>
<pre class="alt">　　<span class="kwrd">for</span>　　(i1=1;i1&lt;=120;i1++)<span class="rem">///房子</span></pre>
<pre>　　{</pre>
<pre class="alt">　　<span class="rem">///9 、挪威人住第一间房子</span></pre>
<pre>　　<span class="rem">///14 、挪威人住在蓝房子旁边</span></pre>
<pre class="alt">　　<span class="rem">///不满足条件就短路</span></pre>
<pre>　　<span class="rem">///　　</span></pre>
<pre class="alt">　　<span class="kwrd">if</span> (ALL[2,i1]!=2)<span class="kwrd">continue</span>;</pre>
<pre>　　<span class="kwrd">for</span>(<span class="kwrd">int</span>　　j=0;j&lt;5;j++,answer[j,1]=ALL[j,i1]);</pre>
<pre class="alt">　　<span class="kwrd">for</span>　　(i2=1;i2&lt;=120;i2++)<span class="rem">///人种</span></pre>
<pre>　　{　　　　　　</pre>
<pre class="alt">　　　　<span class="kwrd">for</span>(<span class="kwrd">int</span>　　j=0;j&lt;5;j++,answer[j,2]=ALL[j,i2]);</pre>
<pre>　　　　<span class="rem">///9 、挪威人住第一间房子</span></pre>
<pre class="alt">　　　　<span class="kwrd">if</span> (ALL[1,i2]!=1)<span class="kwrd">continue</span>;</pre>
<pre>　　　　<span class="rem">///1、 英国人住在红房子里</span></pre>
<pre class="alt">　　　　<span class="rem">///</span></pre>
<pre>　　　　<span class="kwrd">if</span> (find(1,4)!=find(2,2))<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　<span class="rem">///4 、绿房子在白房子左边</span></pre>
<pre>　　　　<span class="rem">///　　</span></pre>
<pre class="alt">　　　　<span class="kwrd">if</span> (find(1,5)&gt;find(1,3))<span class="kwrd">continue</span>;</pre>
<pre>　　　　<span class="kwrd">for</span>　　(i3=1;i3&lt;=120;i3++)<span class="rem">///烟</span></pre>
<pre class="alt">　　　　{</pre>
<pre>　　　　　　<span class="kwrd">for</span>(<span class="kwrd">int</span>　　j=0;j&lt;5;j++,answer[j,3]=ALL[j,i3]);</pre>
<pre class="alt">　　　　　　<span class="rem">///13、 德国人抽PRINCE烟</span></pre>
<pre>　　　　　　<span class="rem">///　　　　</span></pre>
<pre class="alt">　　　　　　<span class="kwrd">if</span>(find(2,3)!=find(3,2))<span class="kwrd">continue</span>;</pre>
<pre>　　　　　　<span class="rem">///7 、黄房子主人抽DUNHILL烟</span></pre>
<pre class="alt">　　　　　　<span class="rem">///　　　　</span></pre>
<pre>　　　　　　<span class="kwrd">if</span>(find(1,1)!=find(3,1))<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　　　<span class="kwrd">for</span>　　(i4=1;i4&lt;=120;i4++)<span class="rem">///饮料</span></pre>
<pre>　　　　　　{　　</pre>
<pre class="alt">　　　　　　　　<span class="kwrd">for</span>(<span class="kwrd">int</span>　　j=0;j&lt;5;j++,answer[j,4]=ALL[j,i4]);</pre>
<pre>　　　　　　　　<span class="rem">///8 、住在中间那间房子的人喝牛奶　　</span></pre>
<pre class="alt">　　　　　　　　<span class="rem">///　　　　</span></pre>
<pre>　　　　　　　　<span class="kwrd">if</span>(ALL[3,i4]!=4)<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　　　　　<span class="rem">///5 、绿房子主人喝咖啡</span></pre>
<pre>　　　　　　　　<span class="rem">///　　</span></pre>
<pre class="alt">　　　　　　　　<span class="kwrd">if</span> (find(1,5)!=find(4,1))<span class="kwrd">continue</span>;</pre>
<pre>　　　　　　　　<span class="rem">///3 、丹麦人喝茶</span></pre>
<pre class="alt">　　　　　　　　<span class="rem">///　　　　</span></pre>
<pre>　　　　　　　　<span class="kwrd">if</span>(find(2,4)!=find(4,3))<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　　　　　<span class="rem">///15 、抽混合烟的人的邻居喝矿泉水　　</span></pre>
<pre>　　　　　　　　<span class="kwrd">if</span>(Math.Abs(find(3,3)-find(4,2))!=1)<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　　　　　<span class="rem">///12 、抽BLUE　　MASTER烟的人喝啤酒</span></pre>
<pre>　　　　　　　　<span class="rem">///　　　　</span></pre>
<pre class="alt">　　　　　　　　<span class="kwrd">if</span>(find(3,5)!=find(4,5))<span class="kwrd">continue</span>;</pre>
<pre>　　　　　　　　<span class="kwrd">for</span>　　(i5=1;i5&lt;=120;i5++)<span class="rem">///宠物</span></pre>
<pre class="alt">　　　　　　　　{　　　　　　　　　　</pre>
<pre>　　　　　　　　　　<span class="kwrd">for</span>(<span class="kwrd">int</span>　　j=0;j&lt;5;j++,answer[j,5]=ALL[j,i5]);</pre>
<pre class="alt">　　　　　　　　　　<span class="rem">///10 、抽混合烟的人住在养鱼人的旁边</span></pre>
<pre>　　　　　　　　　　<span class="rem">///　　</span></pre>
<pre class="alt">　　　　　　　　　　<span class="kwrd">if</span>(Math.Abs(find(3,3)-find(5,1))!=1)<span class="kwrd">continue</span>;</pre>
<pre>　　　　　　　　　　<span class="rem">///2 、瑞典人养了一条狗</span></pre>
<pre class="alt">　　　　　　　　　　<span class="rem">///　　　　</span></pre>
<pre>　　　　　　　　　　<span class="kwrd">if</span>(find(2,5)!=find(5,5))<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　　　　　　　<span class="rem">///6 、抽PALL MALL烟的人养了一只鸟　　</span></pre>
<pre>　　　　　　　　　　<span class="rem">///　　　　</span></pre>
<pre class="alt">　　　　　　　　　　<span class="kwrd">if</span>(find(3,4)!=find(5,4))<span class="kwrd">continue</span>;</pre>
<pre>　　　　　　　　　　<span class="rem">///11 、养马人住在DUNHILL烟的人旁边</span></pre>
<pre class="alt">　　　　　　　　　　<span class="rem">///　　</span></pre>
<pre>　　　　　　　　　　<span class="kwrd">if</span>(Math.Abs(find(5,3)-find(3,1))!=1)<span class="kwrd">continue</span>;</pre>
<pre class="alt">　　　　　　　　　　<span class="rem">///</span></pre>
<pre>　　　　　　　　　　<span class="rem">///能活到这里的data,当然是答案喽</span></pre>
<pre class="alt">　　　　　　　　　　<span class="rem">///</span></pre>
<pre>　　　　　　　　　　write_answer();</pre>
<pre class="alt">　　　　　　　　}</pre>
<pre>　　　　　　}</pre>
<pre class="alt">　　　　}</pre>
<pre>　　}</pre>
<pre class="alt">}</pre>
<pre>}</pre>
<pre class="alt"><span class="rem">/// &lt;summary&gt;</span></pre>
<pre><span class="rem">/// 非常典型的用递归实现排列组合算法。</span></pre>
<pre class="alt"><span class="rem">/// &lt;/summary&gt;</span></pre>
<pre><span class="kwrd">public</span>　　<span class="kwrd">void</span> p()　　</pre>
<pre class="alt">{</pre>
<pre>　　<span class="kwrd">int</span>　　nCount,nJudge,key;</pre>
<pre class="alt">　　nLevel++;</pre>
<pre>　　<span class="kwrd">if</span>(nLevel&gt;5)</pre>
<pre class="alt">　　{</pre>
<pre>　　　　writeall();<span class="rem">///有一种排列就写到All数组里</span></pre>
<pre class="alt">　　　　nLevel--;</pre>
<pre>　　　　<span class="kwrd">return</span>;</pre>
<pre class="alt">　　}</pre>
<pre>　　<span class="kwrd">for</span>(nCount=1;nCount&lt;=5;nCount++)</pre>
<pre class="alt">　　{</pre>
<pre>　　　　key=0;</pre>
<pre class="alt">　　　　<span class="kwrd">for</span>(nJudge=0;nJudge&lt;=nLevel-1;nJudge++)</pre>
<pre>　　　　　　<span class="kwrd">if</span>(nCount==List[nJudge])</pre>
<pre class="alt">　　　　　　{</pre>
<pre>　　　　　　　　key=1;</pre>
<pre class="alt">　　　　　　　　<span class="kwrd">break</span>;</pre>
<pre>　　　　　　}</pre>
<pre class="alt">　　　　<span class="kwrd">if</span>(key==0)</pre>
<pre>　　　　{</pre>
<pre class="alt">　　　　　　List[nLevel]=nCount;</pre>
<pre>　　　　　　p();</pre>
<pre class="alt">　　　　}</pre>
<pre>　　}</pre>
<pre class="alt">　　nLevel--;</pre>
<pre>}</pre>
<pre class="alt"><span class="rem">/// &lt;summary&gt;</span></pre>
<pre><span class="rem">/// 写入all数组</span></pre>
<pre class="alt"><span class="rem">/// &lt;/summary&gt;</span></pre>
<pre><span class="kwrd">void</span> writeall()</pre>
<pre class="alt">{</pre>
<pre>　　<span class="kwrd">int</span>　　i;</pre>
<pre class="alt">　　<span class="kwrd">for</span>　　(i=1;i&lt;=5;i++)</pre>
<pre>　　{</pre>
<pre class="alt">　　　　ALL[i,count]=List[i];</pre>
<pre>　　}　　　　</pre>
<pre class="alt">　　count++;</pre>
<pre>}</pre>
<pre class="alt"><span class="kwrd">int</span>　　 find(<span class="kwrd">int</span> i,<span class="kwrd">int</span>　　j)</pre>
<pre>{</pre>
<pre class="alt">　　<span class="kwrd">int</span>　　k;</pre>
<pre>　　<span class="kwrd">for</span>(k=0;k&lt;=5;k++)</pre>
<pre class="alt">　　{</pre>
<pre>　　　　<span class="kwrd">if</span> (answer[k,i]==j)</pre>
<pre class="alt">　　　　{</pre>
<pre>　　　　　　<span class="kwrd">return</span> k;</pre>
<pre class="alt">　　　　}</pre>
<pre>　　}</pre>
<pre class="alt">　　<span class="kwrd">return</span> -1;</pre>
<pre>}</pre>
<pre class="alt"><span class="rem">/// &lt;summary&gt;</span></pre>
<pre><span class="rem">/// 将答案打印出来</span></pre>
<pre class="alt"><span class="rem">/// &lt;/summary&gt;</span></pre>
<pre><span class="kwrd">void</span> write_answer()</pre>
<pre class="alt">{</pre>
<pre>　　<span class="kwrd">for</span>　　(<span class="kwrd">int</span> i = 1;i&lt;=5;i++)</pre>
<pre class="alt">　　{</pre>
<pre>　　　　<span class="kwrd">for</span>(<span class="kwrd">int</span>　　j=1　　;j&lt;=5;j++)</pre>
<pre class="alt">　　　　{</pre>
<pre>　　　　　　Console.Write(data[i-1,answer[j,i]-1]+<span class="str">","</span>);</pre>
<pre class="alt">　　　　}</pre>
<pre>　　　　Console.WriteLine();</pre>
<pre class="alt">　　}</pre>
<pre>　　Console.WriteLine();</pre>
<pre class="alt">}</pre>
<pre>}</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>结果(有七种):
</p>
<p>　　黄房子,蓝房子,红房子,绿房子,白房子
</p>
<p>　　挪威人,丹麦人,英国人,德国人,瑞典人
</p>
<p>　　DUNHILL,混合烟,PALL MALL,PRINCE,BLUE MASTER
</p>
<p>　　矿泉水,茶,牛奶,咖 啡, 啤酒
</p>
<p>　　鱼,马,鸟, 恐龙,狗
</p>
<p>------------------------------------------------------------------
</p>
<p>　　绿房子,蓝房子,黄房子,红房子,白房子
</p>
<p>　　挪威人,德国人,瑞典人,英国人,丹麦人
</p>
<p>　　混合烟,PRINCE,DUNHILL,BLUE MASTER,PALL MALL
</p>
<p>　　咖 啡,矿泉水,牛奶, 啤酒 ,茶
</p>
<p>　　恐龙,鱼,狗,马,鸟
</p>
<p>------------------------------------------------------------------
</p>
<p>　　绿房子,蓝房子,白房子,黄房子,红房子,
</p>
<p>　　挪威人,德国人,瑞典人,丹麦人,英国人
</p>
<p>　　PALL MALL,PRINCE,混合烟,DUNHILL,BLUE MASTER
</p>
<p>　　咖 啡,矿泉水,牛奶,茶, 啤酒
</p>
<p>　　鸟,鱼,狗, 恐龙,马
</p>
<p>------------------------------------------------------------------
</p>
<p>　　绿房子,蓝房子,白房子,黄房子,红房子
</p>
<p>　　挪威人,德国人,瑞典人,丹麦人,英国人
</p>
<p>　　PALL MALL,PRINCE,混合烟,DUNHILL,BLUE MASTER
</p>
<p>　　咖 啡,矿泉水,牛奶,茶, 啤酒
</p>
<p>　　鸟, 恐龙,狗,鱼,马
</p>
<p>------------------------------------------------------------------
</p>
<p>　　绿房子,蓝房子,白房子,红房子,黄房子
</p>
<p>　　挪威人,德国人,瑞典人,英国人,丹麦
</p>
<p>　　PALL MALL,PRINCE,混合烟,BLUE MASTER,DUNHILL
</p>
<p>　　咖 啡,矿泉水,牛奶, 啤酒 ,茶
</p>
<p>　　鸟,鱼,狗,马, 恐龙
</p>
<p>------------------------------------------------------------------
</p>
<p>　　绿房子,蓝房子,红房子,黄房子,白房子
</p>
<p>　　挪威人,德国人,英国人,丹麦人,瑞典人
</p>
<p>　　PALL MALL,PRINCE,混合烟,DUNHILL,BLUE MASTER
</p>
<p>　　咖 啡,矿泉水,牛奶,茶, 啤酒
</p>
<p>　　鸟,鱼,马, 恐龙,狗
</p>
<p>------------------------------------------------------------------
</p>
<p>　　绿房子,蓝房子,红房子,黄房子,白房子
</p>
<p>　　挪威人,德国人,英国人,丹麦人,瑞典人
</p>
<p>　　PALL MALL,PRINCE,混合烟,DUNHILL,BLUE MASTER
</p>
<p>　　咖 啡,矿泉水,牛奶,茶, 啤酒
</p>
<p>　　鸟, 恐龙,马,鱼,狗</p>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<pre class="csharpcode">&nbsp;</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style> 
<img src ="http://www.cnblogs.com/cunmang/aggbug/862383.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42956/" target="_blank">[新闻]携程范敏：CEO从接发传真做起</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随]下了个windows live write 来玩玩</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/20/862201.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Mon, 20 Aug 2007 00:58:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/20/862201.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/862201.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/20/862201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/862201.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/862201.html</trackback:ping><description><![CDATA[<p>&nbsp;对于我们来说，写Blog，更多的是和代码打交道的。。。所以去网站下了个代码高亮的插件，如果，你看见</p> <p>了这篇随笔，那代表我发表成功了，下面测试下，发点图片和代码：</p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/windowslivewrite_7E12/16.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="128" alt="16" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/windowslivewrite_7E12/16_thumb.png" width="128" border="0"></a>&nbsp;再来一张，呵呵：<a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/windowslivewrite_7E12/5.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="128" alt="5" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/windowslivewrite_7E12/5_thumb.png" width="128" border="0"></a> </p> <p>---------------------------------------------------------------------------------------</p> <p>&nbsp;下面，粘贴代码看看，如图：</p> <p><a href="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/windowslivewrite_7E12/1.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="224" alt="1" src="http://www.cnblogs.com/images/cnblogs_com/cunmang/WindowsLiveWriter/windowslivewrite_7E12/1_thumb.jpg" width="387" border="0"></a> </p> <p>显示结果如下：</p> <div class="csharpcode"><pre class="alt">&lt;html&gt;</pre><pre>    &lt;head&gt;</pre><pre class="alt">        &lt;title&gt;Hello World!&lt;/title&gt;</pre><pre>        &lt;script Language=<span class="str">"C#"</span> runat=<span class="str">"server"</span> &gt;</pre><pre class="alt">            <span class="kwrd">void</span> Page_Load()</pre><pre>            {</pre><pre class="alt">                Text1.Text = <span class="str">"Hello World!"</span>;</pre><pre>            }</pre><pre class="alt">        &lt;/script&gt;</pre><pre>    &lt;/head&gt;</pre><pre class="alt">    &lt;body&gt;</pre><pre>        &lt;asp:Label id=<span class="str">"Text1"</span> runat=<span class="str">"server"</span> /&gt;</pre><pre class="alt">    &lt;/body&gt;</pre><pre>&lt;/html&gt;</pre></div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>

<p>－－－－再随笔截取点代码粘贴－－－－－－－－－－－－－－</p>
<div class="csharpcode"><pre class="alt"><span class="kwrd">using</span> System;</pre><pre>&nbsp;</pre><pre class="alt"><span class="kwrd">namespace</span> 委托</pre><pre>{</pre><pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">class</span> personInfo</pre><pre>    {</pre><pre class="alt">        <span class="kwrd">public</span> <span class="kwrd">string</span> oleName;</pre><pre>        <span class="kwrd">public</span> <span class="kwrd">string</span> newName;</pre><pre class="alt">    }</pre><pre>    <span class="rem">//定义委托类型</span></pre><pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">delegate</span> <span class="kwrd">void</span> PersonDelegate(personInfo info);</pre><pre>    </pre><pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">class</span> person</pre><pre>    {</pre><pre class="alt">        <span class="kwrd">string</span> _name;  <span class="rem">//姓名</span></pre><pre>&nbsp;</pre><pre class="alt">        <span class="rem">//定义事件 changeName:事件名</span></pre><pre>        <span class="kwrd">public</span> <span class="kwrd">event</span> PersonDelegate changeName;</pre><pre class="alt">        <span class="kwrd">public</span> <span class="kwrd">string</span> Name</pre><pre>        {</pre><pre class="alt">            get{<span class="kwrd">return</span> _name;}</pre><pre>            set</pre><pre class="alt">            {</pre><pre>                <span class="rem">//当姓名改变的时候,引发一个事件</span></pre><pre class="alt">                <span class="kwrd">if</span>(_name != <span class="kwrd">value</span>)</pre><pre>                {</pre><pre class="alt">                    personInfo e = <span class="kwrd">new</span> personInfo();</pre><pre>                    e.oleName = _name;</pre><pre class="alt">                    e.newName = <span class="kwrd">value</span>;</pre><pre>                    changeName(e);<span class="rem">//触发事件</span></pre><pre class="alt">                    _name = <span class="kwrd">value</span>;</pre><pre>                }</pre><pre class="alt">            }</pre><pre>        }</pre><pre class="alt">        <span class="kwrd">public</span> person()</pre><pre>        {</pre><pre class="alt">&nbsp;</pre><pre>        }</pre><pre class="alt">    }</pre><pre>}</pre></div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style><img src ="http://www.cnblogs.com/cunmang/aggbug/862201.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42956/" target="_blank">[新闻]携程范敏：CEO从接发传真做起</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随] 网站注册随机码的实现</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/18/860860.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Sat, 18 Aug 2007 05:48:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/18/860860.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/860860.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/18/860860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/860860.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/860860.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">来自：Google<br>－－－－－－－－－－－<br>using</span><span style="color: #000000;">&nbsp;System;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Collections;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.ComponentModel;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Data;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Drawing;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Web;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Web.SessionState;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Web.UI;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Web.UI.WebControls;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Web.UI.HtmlControls;<br></span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;mbord2<br>{<br>&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;image&nbsp;的摘要说明。<br>&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;image&nbsp;:&nbsp;System.Web.UI.Page<br>&nbsp;{<br>&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Page_Load(</span><span style="color: #0000ff;">object</span><span style="color: #000000;">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;在此处放置用户代码以初始化页面</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.CreateCheckCodeImage(GenerateCheckCode());<br>&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">产生随机数的函数</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;GenerateCheckCode()<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;number;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;code;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">空字符串且为只读属性</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;checkCode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;String.Empty;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">新建一个随机数产生器</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;System.Random&nbsp;random&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Random();<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">5</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">随机产生一个整数</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果随机数是偶数&nbsp;取余</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(number&nbsp;</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)(</span><span style="color: #000000;">'</span><span style="color: #000000;">0</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)(number&nbsp;</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果随机数是奇数&nbsp;选择从[A-Z]</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)(</span><span style="color: #000000;">'</span><span style="color: #000000;">A</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">char</span><span style="color: #000000;">)(number&nbsp;</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">26</span><span style="color: #000000;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">5个字符的组合</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;checkCode&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;code.ToString();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">将字符串checkCode写入Cookies并且返回字符串checkCode</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;Response.Cookies.Add(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;HttpCookie(</span><span style="color: #000000;">"</span><span style="color: #000000;">CheckCode</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;checkCode));<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;checkCode;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">建立一个随机图形</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;CreateCheckCodeImage(</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;checkCode)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(checkCode&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;checkCode.Trim()&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;String.Empty)<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">建立一个位图文件&nbsp;确立长宽</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;System.Drawing.Bitmap&nbsp;image&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Bitmap((</span><span style="color: #0000ff;">int</span><span style="color: #000000;">)Math.Ceiling((checkCode.Length&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">12.5</span><span style="color: #000000;">)),&nbsp;</span><span style="color: #000000;">22</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;Graphics&nbsp;g&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Graphics.FromImage(image);<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">生成随机生成器</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Random&nbsp;random&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Random();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">清空图片背景色</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;g.Clear(Color.White);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">画图片的背景噪音线</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">25</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next(image.Width);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next(image.Width);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next(image.Height);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next(image.Height);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.DrawLine(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Pen(Color.Silver),&nbsp;x1,&nbsp;y1,&nbsp;x2,&nbsp;y2);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">把产生的随机数以字体的形式写入画面</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Font&nbsp;font&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Font(</span><span style="color: #000000;">"</span><span style="color: #000000;">Arial</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">,&nbsp;(System.Drawing.FontStyle.Bold&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;System.Drawing.FontStyle.Italic));<br>&nbsp;&nbsp;&nbsp;&nbsp;System.Drawing.Drawing2D.LinearGradientBrush&nbsp;brush&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Drawing2D.LinearGradientBrush(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Rectangle(</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;image.Width,&nbsp;image.Height),&nbsp;Color.Blue,&nbsp;Color.DarkRed,&nbsp;</span><span style="color: #000000;">1.2f</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;g.DrawString(checkCode,&nbsp;font,&nbsp;brush,&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">画图片的前景噪音点</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">100</span><span style="color: #000000;">;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next(image.Width);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;random.Next(image.Height);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image.SetPixel(x,&nbsp;y,&nbsp;Color.FromArgb(random.Next()));<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">画图片的边框线</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;g.DrawRectangle(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Pen(Color.Silver),&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;image.Width&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,&nbsp;image.Height&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;System.IO.MemoryStream&nbsp;ms&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.IO.MemoryStream();<br>&nbsp;&nbsp;&nbsp;&nbsp;image.Save(ms,&nbsp;System.Drawing.Imaging.ImageFormat.Gif);<br>&nbsp;&nbsp;&nbsp;&nbsp;Response.ClearContent();<br>&nbsp;&nbsp;&nbsp;&nbsp;Response.ContentType&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">image/Gif</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;Response.BinaryWrite(ms.ToArray());<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">finally</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;g.Dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;image.Dispose();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;</span><span style="color: #0000ff;">#region</span><span style="color: #000000;">&nbsp;Web&nbsp;窗体设计器生成的代码</span><span style="color: #000000;"><br>&nbsp;&nbsp;</span><span style="color: #0000ff;">override</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;OnInit(EventArgs&nbsp;e)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;"><br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;CODEGEN:&nbsp;该调用是&nbsp;ASP.NET&nbsp;Web&nbsp;窗体设计器所必需的。<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//<br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;InitializeComponent();<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">base</span><span style="color: #000000;">.OnInit(e);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br>&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;设计器支持所需的方法&nbsp;-&nbsp;不要使用代码编辑器修改<br>&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;此方法的内容。<br>&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br></span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;InitializeComponent()<br>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Load&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.EventHandler(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Page_Load);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;</span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"><br>&nbsp;}<br>}</span></div>
<br><img src ="http://www.cnblogs.com/cunmang/aggbug/860860.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42955/" target="_blank">[新闻]2008年10月13日科技博客精选</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[随]存储过程入门与提高</title><link>http://www.cnblogs.com/cunmang/archive/2007/08/14/855422.html</link><dc:creator>寸芒</dc:creator><author>寸芒</author><pubDate>Tue, 14 Aug 2007 07:29:00 GMT</pubDate><guid>http://www.cnblogs.com/cunmang/archive/2007/08/14/855422.html</guid><wfw:comment>http://www.cnblogs.com/cunmang/comments/855422.html</wfw:comment><comments>http://www.cnblogs.com/cunmang/archive/2007/08/14/855422.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cunmang/comments/commentRss/855422.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cunmang/services/trackbacks/855422.html</trackback:ping><description><![CDATA[摘自：网络<br>--------------------<br>什么是存储过程呢？
<p>&#160;</p>
<p>&nbsp;定义：</p>
<p>&nbsp;将常用的或很复杂的工作，预先用SQL语句写好并用一个指定的名称存储起来,&nbsp;那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。</p>
<p>&nbsp;讲到这里,可能有人要问：这么说存储过程就是一堆SQL语句而已啊？</p>
<p>&nbsp;Microsoft公司为什么还要添加这个技术呢?</p>
<p>&nbsp;那么存储过程与一般的SQL语句有什么区别呢?</p>
<p>&nbsp;存储过程的优点：</p>
<p>&nbsp;1.存储过程只在创造时进行编译，以后每次执行存储过程都不需再重新编译，而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。</p>
<p>&nbsp;2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时），可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。</p>
<p>&nbsp;3.存储过程可以重复使用,可减少数据库开发人员的工作量</p>
<p>&nbsp;4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权</p>
<p>&nbsp;存储过程的种类：</p>
<p>&nbsp;1.系统存储过程：以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,</p>
<p>&nbsp;如&nbsp;sp_help就是取得指定对象的相关信息</p>
<p>&nbsp;2.扩展存储过程&nbsp;以XP_开头,用来调用操作系统提供的功能</p>
<p>&nbsp;exec&nbsp;master..xp_cmdshell&nbsp;'ping&nbsp;10.8.16.1'</p>
<p>&nbsp;3.用户自定义的存储过程,这是我们所指的存储过程</p>
<p>&nbsp;常用格式</p>
<p>&nbsp;Create&nbsp;procedure&nbsp;procedue_name</p>
<p>&nbsp;[@parameter&nbsp;data_type][output]</p>
<p>&nbsp;[with]{recompile|encryption}</p>
<p>&nbsp;as</p>
<p>&nbsp;sql_statement</p>
<p>&nbsp;解释:&nbsp;</p>
<p>&nbsp;output：表示此参数是可传回的</p>
<p>&nbsp;with&nbsp;{recompile|encryption}</p>
<p>&nbsp;recompile:表示每次执行此存储过程时都重新编译一次</p>
<p>&nbsp;encryption:所创建的存储过程的内容会被加密</p>
<p>&nbsp;如:</p>
<p>&nbsp;表book的内容如下</p>
<p>&nbsp;编号&nbsp;书名&nbsp;价格</p>
<p>&nbsp;001&nbsp;C语言入门&nbsp;$30</p>
<p>&nbsp;002&nbsp;PowerBuilder报表开发&nbsp;$52</p>
<p>&nbsp;实例1:查询表Book的内容的存储过程</p>
<p>&nbsp;create&nbsp;proc&nbsp;query_book</p>
<p>&nbsp;as&nbsp;</p>
<p>&nbsp;select&nbsp;*&nbsp;from&nbsp;book</p>
<p>&nbsp;go</p>
<p>&nbsp;exec&nbsp;query_book</p>
<p>&nbsp;实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额</p>
<p>&nbsp;Create&nbsp;proc&nbsp;insert_book</p>
<p>&nbsp;@param1&nbsp;char(10),@param2&nbsp;varchar(20),@param3&nbsp;money,@param4&nbsp;money&nbsp;output</p>
<p>&nbsp;with&nbsp;encryption&nbsp;---------加密</p>
<p>&nbsp;as</p>
<p>&nbsp;insert&nbsp;book(编号,书名，价格）&nbsp;values(@param1,@param2,@param3)<br>&nbsp;select&nbsp;@param4=sum(价格)&nbsp;from&nbsp;book<br>&nbsp;go</p>
<p>&nbsp;执行例子:&nbsp;<br>&nbsp;declare&nbsp;@total_price&nbsp;money&nbsp;<br>&nbsp;exec&nbsp;insert_book&nbsp;'003','Delphi&nbsp;控件开发指南',$100,@total_price<br>&nbsp;print&nbsp;'总金额为'+convert(varchar,@total_price)<br>&nbsp;go<br>&nbsp;存储过程的3种传回值:<br>&nbsp;1.以Return传回整数<br>&nbsp;2.以output格式传回参数<br>&nbsp;3.Recordset<br>&nbsp;传回值的区别:<br>&nbsp;output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中&nbsp;</p>
<p>&nbsp;实例3：设有两个表为Product,Order,其表内容如下：<br>&nbsp;Product<br>&nbsp;产品编号&nbsp;产品名称&nbsp;客户订数&nbsp;<br>&nbsp;001&nbsp;钢笔&nbsp;30&nbsp;<br>&nbsp;002&nbsp;毛笔&nbsp;50&nbsp;<br>&nbsp;003&nbsp;铅笔&nbsp;100&nbsp;<br>&nbsp;Order&nbsp;<br>&nbsp;产品编号&nbsp;客户名&nbsp;客户订金<br>&nbsp;001&nbsp;南山区&nbsp;$30<br>&nbsp;002&nbsp;罗湖区&nbsp;$50<br>&nbsp;003&nbsp;宝安区&nbsp;$4<br>&nbsp;请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,<br>&nbsp;总金额=订金*订数,临时表放在存储过程中</p>
<p>&nbsp;代码如下:<br>&nbsp;Create&nbsp;proc&nbsp;temp_sale<br>&nbsp;as<br>&nbsp;select&nbsp;a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数*&nbsp;b.客户订金&nbsp;as总金额<br>&nbsp;into&nbsp;#temptable&nbsp;from&nbsp;Product&nbsp;a&nbsp;inner&nbsp;join&nbsp;Order&nbsp;b&nbsp;on&nbsp;a.产品编号=b.产品编号<br>&nbsp;if&nbsp;@@error=0&nbsp;<br>&nbsp;print&nbsp;'Good'<br>&nbsp;else<br>&nbsp;print&nbsp;'Fail'<br>&nbsp;go </p>
<img src ="http://www.cnblogs.com/cunmang/aggbug/855422.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42954/" target="_blank">[新闻]Google Android手机大受欢迎,已经订出150万台</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>